Codeforces Round #137 (Div.2)
はい。
http://codeforces.com/contest/222
A. Shooshuns and Sequence
ざっくりと大意
・n個並んだ数列が与えられる。
・k番目のと同じ数を末尾に付け足す。
・そしたら先頭の数を消す。
・数列が全て同じ数になるのが何手目か。
Python2
n,k=map(int,raw_input().split()) l=[int(x) for x in raw_input().split()] if len(set(l[k-1:]))!=1: print -1 exit() ans=chk=k-1 for i in range(k-2,-1,-1): if l[i]==l[k-1]: ans-=1 else: break print ans
よく考察せずに解説読んだ。 k番目から末尾までが同じ数でないと手順を繰り返しても数列が全て同じ数になることはない。のに気づくのがポイント?だと思う。k番目から末尾までが同じ数だったならば、とりあえずは手数をkとする。k番目から先頭まで辿ろうとしてk番目と同じ数ならば1手減らす。違う数なら探索終了をしたものが解になると思う。
B. Cosmic Tables
ざっくりと大意
・n * mの表があり、k件のクエリを処理する。
・cなら列をswap、rなら行をswap、gならその座標の数を出力する。
Python2
n,m,k=map(int,raw_input().split()) l=[] x={i:i for i in range(n)} y={i:i for i in range(m)} for i in range(n): l.append(raw_input().split()) for i in range(k): a,b,c=map(str,raw_input().split()) b=int(b) c=int(c) if a=='g': print l[x[b-1]][y[c-1]] elif a=='r': x[b-1],x[c-1]=x[c-1],x[b-1] else: y[b-1],y[c-1]=y[c-1],y[b-1]
TLE解決できず。。