Codeforces Round #336 (Div.2)
はい。
http://codeforces.com/contest/608
A. Saitama Destroys Hotel
ざっくりと大意
・最上階から1秒で1つずつしか降りられず、無限に何人でも乗れるエレベーター。フロアは0階からs階まである。
・エレベーターに乗ってくる予定の人リストがn件分。f階でt秒の時に人が乗ろうとしてくるので先についたら待たねばならない。
n,s=map(int,raw_input().split()) d={} for i in range(n): f,t=map(int,raw_input().split()) if d.has_key(f): d[f]=max(d[f],t) else: d[f]=t ans=chk=0 while s: if d.has_key(s): ans=max(ans,d[s]) s-=1 ans+=1 print ans
Noteはちょっと意味がよくわからん。何人の乗客が待ってるかなんて情報は入力データにない気がするし、解答にも影響しないし何言ってるのかわからん。
多分、入力データのf階は重複する場合があると思うのでtは大きい方の値で処理する必要があり。コンテスト当時と書き方が変わったけどs階から0階までシミュレートっぽいことしたのはあまり変わりなし。もっと楽な方法があるのかもしれないけどデータ件数が最大100件で最上階も最大で1000階なので多少効率悪くてもどうにでもなるはず。
B. Hamming Distance Sum
ざっくりと大意
・0,1の差の絶対値を取って総和がいくつか? ・サンプル1、Noteは多分こんな感じ??
sample
01 01 01 01 00111
#TLEします a=raw_input() b=raw_input() la,lb=len(a),len(b) ans=chk=0 t=lb-la for i in range(lb): tmp=max(0,i-t) tmp2=min(tmp+t+1,i+1) if b[i]=='0': ans+=a[tmp:tmp2].count('1') else: ans+=a[tmp:tmp2].count('0') print ans
for文は一つでもやってることは多重ループと大して変わらないしTLEもやむなし。。また後で。