結果

問題 No.2872 Depth of the Parentheses
ユーザー Alp başar
提出日時 2024-09-06 23:19:49
言語 PyPy3
(7.3.15)
結果
AC  
実行時間 1,594 ms / 2,000 ms
コード長 1,525 bytes
コンパイル時間 446 ms
コンパイル使用メモリ 82,324 KB
実行使用メモリ 152,364 KB
最終ジャッジ日時 2024-09-06 23:20:16
合計ジャッジ時間 24,255 ms
ジャッジサーバーID
(参考情報)
judge1 / judge3
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 3
other AC * 20 TLE * 5
権限があれば一括ダウンロードができます

ソースコード

diff #
プレゼンテーションモードにする

def power(x, y, m):
if y == 0:
return 1
p = power(x, y // 2, m) % m
p = (p * p) % m
return p if y % 2 == 0 else (x * p) % m
def modInverse(a, m):
g = gcd(a, m)
# If a and m are relatively prime, then modulo inverse is a^(m-2) mode m
return power(a, m - 2, m)
def gcd(a, b):
if a == 0:
return b
return gcd(b % a, a)
def main():
inputs = input().split()
intinputs = [int(i) for i in inputs]
x = intinputs[0]
k = intinputs[1]
# x = int(input())
# k = int(input())
depth = [0] * (k + 1)
modwith = 998244353
pleft = x * modInverse(100, modwith)
pright = (100 - x) * modInverse(100, modwith)
for i in range(1 << (k * 2)):
op = 0
best = 0
prob = 1
pprob = 1.0
good = True
for j in range(k * 2):
if i & (1 << j):
op += 1
prob *= pleft
else:
op -= 1
prob *= pright
prob %= modwith
if op < 0:
good = False
best = max(best, op)
if op != 0:
good = False
if not good:
best = 0
depth[best] += prob
depth[best] %= modwith
exp = 0
for i in range(k + 1):
exp += depth[i] * i
exp %= modwith
print((exp + modwith) % modwith)
if __name__ == "__main__":
main()
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
0