Atcoder ABC376のB問題でコードの誤りが見つけられない
解決したいこと
Atcoderでアルゴリズムを学習しています。
初めてコンテストに参加したのですが、ABC376のB問題が不正解でした。
サンプルは全て通ったのですがその他テストケースでWAになってしまいました。
解説を読み、自身が考えていたことは概ね合っていたと思うのですが、
コードの誤りが見つけられません。
どのようなテストケースでエラーになるのか、
またはコード上どんなケースが考慮されていないのか、ご教授頂けないでしょうか。
ABC376 B問題
https://atcoder.jp/contests/abc376/tasks/abc376_b
提出
https://atcoder.jp/contests/abc376/submissions/58980865
該当するソースコード
N, Q = map(int, input().split())
ring = ["0"]*N
ring[0] = "L"
ring[1] = "R"
sum = 0
for i in range(Q):
H, T = input().split()
T = int(T)
#Rの居場所
R_index = ring.index("R")
#Lの居場所
L_index = ring.index("L")
if H == "R":
new_index = T - 1
tmp = R_index
#右移動でLが先にいる場合
if R_index < L_index and new_index > L_index:
#左移動
while new_index != tmp:
if tmp == 0:
tmp = len(ring) - 1
else:
tmp -= 1
sum += 1
else:
#右移動
while new_index != tmp:
if tmp == len(ring) - 1:
tmp = 0
else:
tmp += 1
sum += 1
ring[R_index] = "0"
ring[new_index] = "R"
elif H == "L":
new_index = T - 1
tmp = L_index
#右移動でRが先にいる場合
if L_index < R_index and new_index > R_index:
#左移動
while new_index != tmp:
if tmp == 0:
tmp = len(ring) - 1
else:
tmp -= 1
sum += 1
else:
#右移動
while new_index != tmp:
if tmp == len(ring) - 1:
tmp = 0
else:
tmp += 1
sum += 1
ring[L_index] = "0"
ring[new_index] = "L"
print(sum)