Я принимал участие в раунде b кикстарта 2020, и моя последняя отправка в задаче c Расшифровка пути робота получила WA в TestSet2 (большой набор данных). Хотя я использую мод на каждом шагу, я все равно не мог решить его несколько раз. И я был исчерпан с 11 попытками ... Ниже мой код, написанный в python3
def solve(s):
r, d = 0, 0
stack = []
muti = 1
mod = 1000000000
for i, c in enumerate(s):
if c == '(':
stack.append(s[i-1])
muti = ((muti+mod)*(int(stack[-1])+mod)) % mod
elif c == ')':
muti = int(muti/int(stack.pop()))
elif ord(c)>64:
if c == 'N':
d = (d - muti + mod) % mod
elif c == 'S':
d = (d + muti + mod) % mod
elif c == 'W':
r = (r - muti + mod) % mod
else:
r = (r + muti + mod) % mod
return [r+1, d+1]
T = int(input())
for t in range(1, T+1):
s = input()
print("Case #{}: {}".format(t, " ".join(map(str, solve(s)))))