Codeforces Round #213 (Div. 2)
はい。
http://codeforces.com/contest/365
A. Good Number
ざっくりと大意
・n行の\(a_i\)の数が0からkまでの数を全て含んでいればGood Numberなのをカウントする。
方針のようなもの
・setにして重複排除してリストに戻してsortして、0からkまで一致するかチェックする。
n,k=map(int,raw_input().split()) ans=chk=0 for i in range(n): w=list(raw_input()) w=list(set(w)) w.sort() if len(w)>k: for j in range(k+1): if w[j]!=str(j): break elif w[j]==str(k): ans+=1 break print ans
B. The Fibonacci Segment
ざっくりと大意
・問題文表記では\(a_i\)=\(a{i-1}\)+\(a{i-2}\)で、配列とかにするとl[i]==l[i-1]+l[i-2]が成立している区間の最大長を探す。
・配列長が1なら解は1で、2なら解は2になる。
方針のようなもの
・配列長が3以上ならとりあえず最低でも解を2にしてから、l=[i-1]+l[i-2]が見つかったら解を3にして更にその隣も成立しているかを見ていく。
n=int(raw_input()) l=map(int,raw_input().split()) ans=chk=x=2 if len(l)==1: print 1 exit() #if l[0]==l[1]: # ans=2 for i in range(2,n): if l[i-1]+l[i-2]==l[i]: if chk<3: chk=3 else: chk+=1 else: chk=2 ans=max(ans,chk) print ans