Codeforces Round #333 (Div.2)
はい。
http://codeforces.com/contest/602
A. Two Bases
ざっくりと大意
・長さnの数列xが右から見るとそれぞれがb進数で1桁目、2桁目になっている。同様に長さmの数列yも。。
・それから作られるXとYとを比較した大小関係の結果を出力する。
方針のようなもの
・変換する。
def sol(k,s): t=0 for a,i in enumerate(s[::-1]): t+=i*(k**a) return t n,b=map(int,raw_input().split()) x=map(int,raw_input().split()) n2,b2=map(int,raw_input().split()) y=map(int,raw_input().split()) print '=' if sol(b,x)==sol(b2,y) else '>' if sol(b,x)>sol(b2,y) else '<'
右からそれぞれの数と b0 , b1 ...を掛けたものの総和を比較。
B. Approximating a Constant Range
ざっくりと大意
・差が1以内の連続した区間の最大の長さがいくつか??
方針のようなもの
・先頭から探す。
#TLE解決できず しゃくとりは無理っぽい n=int(raw_input()) #n,k=map(int,raw_input().split()) l=map(int,raw_input().split()) ans=1 i=0 memo=[l[0],0] while i<n-1: cnt=1 chk=-1 if (n-1)-i<ans: break for j in range(i+1,n): #print memo if l[j-1]!=memo[0]: memo[0]=l[j-1] memo[1]=j-1 if l[j-1]==l[j] or l[i]==l[j]: cnt+=1 elif (abs(l[j-1]-l[j])==1 and chk==-1) or l[j]==chk: chk=l[j] cnt+=1 else: break ans=max(ans,cnt) i=memo[1] print ans
はい。TLE解決せず。単純なしゃくとりでは無理っぽいので後で。