読者です 読者をやめる 読者になる 読者になる

SRM 570 Div1

○-- +0/-0 164.02pt rate: 1467 -> 1472
easy解くの遅すぎて死んでしまいます 今回Challenge出来そうになかったし諦め。
med, 木dpなのはわかるがバグるし知らない。dp苦手すぎる... まあ550だし仕方ないね

easy - 周期4に気付いて適当に処理。よく見るとrep(i, T) rep(i, sz)とかいう怖いことをしているが落ちなくて怖い

class RobotHerb{
    public:
	long long getdist(int T, vector <int> a){
	    int sz = a.size();
	    int dir = 0;
	    ll x = 0, y = 0;
	    rep(i, sz){
		x += dx[dir] * a[i];
		y += dy[dir] * a[i];
		dir = (dir + a[i]) % 4;
	    }
	    if(dir == 0){
		x *= (ll)T;
		y *= (ll)T;
	    }else if(dir == 2){
		if(T & 1) return abs(x) + abs(y);
		else return 0LL;
	    }else{
		T %= 4;
		x = 0;
		y = 0;
		rep(i, T){
		    rep(i, sz){
			x += dx[dir] * a[i];
			y += dy[dir] * a[i];
			dir = (dir + a[i]) % 4;
		    }
		}
	    }
	    return abs(x) + abs(y);
	}
};