AtCoder Regular Contest 041 参加記
はい。 ox--
http://arc041.contest.atcoder.jp
A問題のみAC。B問題は処理方法にミスがあってWA、C,Dは手付かずで終わった。。
A - コインの反転
x,y=map(int,raw_input().split()) k=int(raw_input()) if y>=k: print x+k else: print x-(k-y)+y
kがyより大きい場合の処理方法の式が即時には思いつかなかったので数分掛けてしまった。。
B - アメーバ
n,m=map(int,raw_input().split()) boad=[[] for i in range(n)] ans=[[0]*m for i in range(n)] for i in range(n): s=raw_input() for j in s: boad[i].append(int(j)) for i in range(n-1): for j in range(m-1): if boad[i][j]!=0: chk=boad[i][j] boad[i][j]=0 boad[i+1][j-1]-=chk boad[i+1][j+1]-=chk boad[i+2][j]-=chk ans[i+1][j]=chk for i in ans: print ''.join(map(str,i))
コンテスト中は入力で与えられる配列内にアメーバの初期位置を書き込んで、しかもその値を移動前後で区別させないという間抜けなWAだった。。コンテスト後に解説を見て、別の配列にして書き直したら普通にACだったので勿体無かった。。
C - ウサギ跳び
終わってから問題と解説読んでみれば方針はごく単純なようでL,Rの向きによって、いくつかの区間を個別に取り出す書き方に悩むのでまた後で。。