結果
| 問題 |
No.1677 mæx
|
| コンテスト | |
| ユーザー |
rlangevin
|
| 提出日時 | 2023-02-06 23:47:54 |
| 言語 | PyPy3 (7.3.15) |
| 結果 |
AC
|
| 実行時間 | 311 ms / 2,000 ms |
| コード長 | 1,495 bytes |
| コンパイル時間 | 162 ms |
| コンパイル使用メモリ | 82,304 KB |
| 実行使用メモリ | 91,464 KB |
| 最終ジャッジ日時 | 2024-07-05 01:04:53 |
| 合計ジャッジ時間 | 5,340 ms |
|
ジャッジサーバーID (参考情報) |
judge2 / judge5 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 4 |
| other | AC * 18 |
ソースコード
mod = 998244353
def lst(n):
if n == "0":
return [1, 0, 0]
elif n == "1":
return [0, 1, 0]
elif n == "2":
return [0, 0, 1]
elif n == "?":
return [1, 1, 1]
else:
return n
def calc(X, Y, ae):
temp = [0, 0, 0]
if ae == "a":
temp[2] = sum(X) * Y[2] + sum(Y) * X[2] - X[2] * Y[2]
temp[1] = (X[1] + X[0]) * (Y[1] + Y[0]) - Y[0] * X[0]
temp[0] = X[0] * Y[0]
elif ae == "e":
temp[0] = (X[1] + X[2]) * (Y[1] + Y[2])
temp[1] = (X[0] + X[2]) * (Y[0] + Y[2]) - X[2] * Y[2]
temp[2] = X[0] * Y[1] + X[1] * Y[0]
else:
temp[0] = (X[1] + X[2]) * (Y[1] + Y[2]) + X[0] * Y[0]
temp[1] = (X[0] + X[2]) * (Y[0] + Y[2]) - X[2] * Y[2] + (X[1] + X[0]) * (Y[1] + Y[0]) - Y[0] * X[0]
temp[2] = X[0] * Y[1] + X[1] * Y[0] + sum(X) * Y[2] + sum(Y) * X[2] - X[2] * Y[2]
temp[0] %= mod
temp[1] %= mod
temp[2] %= mod
# print("calc_test", X, Y, temp, ae)
return temp
S = list(input())
K = int(input())
stack = []
for s in S:
if s == "m" or s == "x":
continue
elif s != ")":
stack.append(s)
else:
A = lst(stack.pop())
stack.pop()
B = lst(stack.pop())
stack.pop()
ae = stack.pop()
stack.append(calc(A, B, ae))
# print("test", s, stack)
if stack[0] in ["0", "1", "2"]:
if K == int(stack[0]):
print(1)
else:
print(0)
else:
print(stack[0][K])
rlangevin