いむらや競プロ雑記

キーワード:競プロ、育児、石川県

ABC136 D - Gathering Children(要追記)

atcoder.jp

pythonです。 試行回数が十分大きな偶数なので、収束したときの状態・振動を探せばいいと思ったが、、、 以下で通ったが、いまいち理解しきれていない。

Rが続く限り、Rの続きの次の位置に吸い寄せられる。Lも同様。 これをやっただけで、RLで振動するパターンに特別な考慮なくACなのが謎だ。

RとLのそれぞれの連打が終息した時と、RLの振動と、偶奇が嚙み合わなかったらWAにならないのか?まだわからない。。。ピンと来たら追記する。

def resolve():
    S=input()
    N=len(S)
    arr=[1]*N

    for i in range(N-2):
        if(S[i]=="R" and S[i+1]=="R"):
            arr[i+2]+=arr[i]
            arr[i]=0
    for i in range(N-1, 0, -1):
        if(S[i]=="L" and S[i-1]=="L"):
            arr[i-2]+=arr[i]
            arr[i]=0

    for i in range(N):
        print(arr[i], end=" ")