唯物是真 @Scaled_Wurm

プログラミング(主にPython2.7)とか機械学習とか

TopCoder SRM 570 Div 2 ○○- 1127->1055

最初の20分ぐらいでSmallとMedium解き終わって、Largeは解けないからやることないな~と思っていたら、終盤にSmallの入力の範囲を読み間違えていたことに気づいて配列のサイズを変えて再提出して爆死

small

ソートしたり配列に入れたりmapに入れたりして、同じ値の要素の個数を2で割った数の総和をとる。

public class Chopsticks {

	public int getmax(int[] length) {
		int[] count = new int[101];
		for(int l: length) {
			count[l] += 1;
		}
		int sum = 0;
		for(int c: count) {
			sum += c / 2;
		}
		return sum;
	}

}

medium

単純にシミュレーションするだけ。
もっとTが大きい時は周期性を使ってもいい。

public class RobotHerbDiv2 {

	public int getdist(int T, int[] a) {
		int x = 0;
		int y = 0;

		int dir = 0;
		for(int i = 0; i < T; i++) {
			for(int b: a) {
				if(dir == 0) {
					y += b;
				} else if(dir == 1) {
					x += b;
				} else if(dir == 2) {
					y -= b;
				} else if(dir == 3) {
					x -= b;
				}
				dir = (dir + b) % 4;
			}
		}
		return Math.abs(x) + Math.abs(y);
	}

}