読者です 読者をやめる 読者になる 読者になる

君はまるで砂漠に咲く、一輪の花。

僕はその花に引き寄せられる蝶。

Codeforces Round #238 (Div. 2)

はい。
http://codeforces.com/contest/405

A. Gravity Flip

ざっくりと大意

・色々な高さで並んでいる箱が重力で右に寄った結果を出力。

方針のようなもの

・右に寄せる。

n=int(raw_input())
l=map(int,raw_input().split())
l.sort()
print ' '.join(map(str,l))

B. Domino Effect

ざっくりと大意

・ドミノがL,Rで左右の向きに毎秒倒れていく。全ての動きが終わった時に倒れずに残っているドミノは幾つあるか?? ・R..Lだと中央部は1秒目にそれぞれRとLに倒れたことになる。問題文の絵ではハの字に倒れかかった感じになるけど倒れたことになる。
・R...Lだと1秒目はR,Lがそれぞれ1つ内側に倒れて、2秒目に同時にR,Lが来て倒れないドミノになる。/|\みたいな感じ。

方針のようなもの

・1秒で1つ倒れることとハの字と/|\みたいなのを丁寧にチェックする。

n=int(raw_input())
d=list(raw_input())
chk=1
while chk:
#左端から右端までみてドミノが変わらなかったらループ終了するフラグをchkで管理
#rで右に倒れたドミノを一度のループで続けて倒さないように管理
#rで同時ターンに左に倒れようとした場合に倒れないフラグも管理
    chk=r=0
    for i in range(n):
        if d[i]=='.':
            r=0
        elif d[i]=='R' and i<n-1:
            if d[i+1]=='.' and r==0:
                d[i+1]='R'
                r=chk=1
        elif d[i]=='L' and i>0:
            if d[i-1]=='.':
                d[i-1]='L'
                chk=1
            elif d[i-1]=='R' and r==1:
                d[i-1]='X'
            r=0
print d.count('.')+d.count('X')