ぼちぼち中継地点。
http://arc007.contest.atcoder.jp/assignments
A - 帰ってきた器物損壊!高橋君
1文字と別の文字列が与えられるので、後者の文字列から最初の1文字を抜いて返す。
最初は真面目に1文字ずつ処理してみた。
A=raw_input() B=raw_input() C='' for c in B: if c != A: C+=c print(C)
でも、もっと簡単にも書けるのね。
A=raw_input().strip() print(raw_input().replace(A,""))
B - 迷子のCDケース
CDドライブとCDケース群でCDの入れ替えを行うとき、最終的なCDの並びを答える。
題意に沿ってswapを繰り返すだけ。
N,M=map(int,raw_input().split(" ")) C=range(0,N+1) for i in range(0,M): d=input() for j in range(0,N+1): if C[j]==d: C[0],C[j]=C[j],C[0] break for i in range(1,N+1): print(C[i])
C - 節約生活
あるテレビについて、1周期中見られる時間と見られない時間がbitmapで与えられる。
何台かテレビを準備して、1周期分常に1台以上は見られるようにするとき、最小台数を答える。
1周期10時間なので、2^10パターン全列挙して試せばよい。
S=list(raw_input()) L=len(S) v=0 for i in range(L): if S[i]=="o": v |= 1<<i mi=1000 for par in range(1<<L): b=0 t=0 for i in range(L): if (par & (1<<i))>0: t += 1 b |= (v<<i) | (v>>(L-i)) if b & ((1<<L)-1) == ((1<<L)-1): mi=min(mi,t) print(mi)
まとめ
この回は余り苦労せず順調にこなせた。