Codeforces Round #370 (Div.2) 参加記
はい。 oo--- unrated...
http://codeforces.com/contest/712
開始前から接続が不調でいつの間にか始まっててunratedになった回。
A. Memory and Crow
ざっくりと大意
・\(a_i\) = \(b_i\) - \(b{i+1}\) + \(b{i+2}\) ...が成立するような数列bを作る。
n=int(raw_input()) l=map(int,raw_input().split()) ans=[] e,o=0,0 for a,i in enumerate(l[::-1]): if a%2==0: t=i-(o-e) ans.append(str(t)) o+=t else: t=i-(e-o) ans.append(str(t)) e+=t print ' '.join(ans[::-1])
末尾から見ていけば入る数は決まると思う。というか末尾から見ないと一度で定められないと思う。
B. Memory and Trident
ざっくりと大意
・文字列Sでの移動仕方を最小の変更で開始位置に戻れるようにする。
s=raw_input() if len(s)%2: print -1 exit() #URDL x,y=0,0 l=[0]*4 for i in s: if i=='U': l[0]+=1 y+=1 elif i=='R': l[1]+=1 x+=1 elif i=='D': l[2]+=1 y-=1 else: l[3]+=1 x-=1 if x==y==0: print 0 else: x=abs(x) y=abs(y) print (x+y)/2
使わなかったものが残ってる。。。x,yでの離れてる距離、マンハッタン距離を2で割ると開始位置に戻れる計算になる。