結果
| 問題 |
No.1196 A lazy student
|
| コンテスト | |
| ユーザー |
|
| 提出日時 | 2020-08-22 11:05:21 |
| 言語 | PyPy3 (7.3.15) |
| 結果 |
TLE
|
| 実行時間 | - |
| コード長 | 2,686 bytes |
| コンパイル時間 | 334 ms |
| コンパイル使用メモリ | 82,176 KB |
| 実行使用メモリ | 114,744 KB |
| 最終ジャッジ日時 | 2024-10-15 06:51:15 |
| 合計ジャッジ時間 | 4,952 ms |
|
ジャッジサーバーID (参考情報) |
judge4 / judge5 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 3 |
| other | AC * 5 TLE * 1 -- * 8 |
ソースコード
from collections import deque
from decimal import *
cr = 0
itms = deque()
n = int(input())
array = input().split()
p = Decimal(array[0])
q = Decimal(array[1])
r = Decimal(array[2])
s = input()
def gnt():
global cr
global s
if cr == len(s):
return 0
if s[cr] == '(':
cr = cr + 1
return '('
elif s[cr] == ')':
cr = cr + 1
return ')'
elif s[cr] == ' ':
cr = cr + 1
return gnt()
elif s[cr] == 'Y':
cr = cr + 3
return 'Y'
elif s[cr] == 'N':
cr = cr + 2
return 'N'
elif s[cr] == 'r':
cr = cr + 6
return 'r'
elif s[cr] == 'a':
cr = cr + 3
return 'a'
elif s[cr] == 'o':
cr = cr + 2
return 'o'
else:
return -1
itms_l = 1
itms.append([0, -1])
while itms_l != 0:
itm = itms.pop()
itms_l = itms_l - 1
if itm[0] == 0:
itms.append([1, -1])
itms.append([3, -1])
itms_l = itms_l + 2
continue
if itm[0] == 1:
prev = cr
if gnt() == 'o':
itms.append([2, ret])
itms.append([3, -1])
itms_l = itms_l + 2
continue
cr = prev
continue
if itm[0] == 2:
itms.append([1, -1])
ret = (itm[1] + ret - itm[1] * ret) * (1 - r) + ((1 - itm[1]) * (1 - ret)) * r
itms_l = itms_l + 1
continue
if itm[0] == 3:
itms.append([4, -1])
itms.append([6, -1])
itms_l = itms_l + 2
continue
if itm[0] == 4:
prev = cr
if gnt() == 'a':
itms.append([5, ret])
itms.append([6, -1])
itms_l = itms_l + 2
continue
cr = prev
continue
if itm[0] == 5:
itms.append([4, -1])
ret = itm[1] * ret * (1 - r) + (1 - itm[1] * ret) * r
itms_l = itms_l + 1
continue
if itm[0] == 6:
c = gnt()
if c == 'Y':
ret = 1
continue
elif c == 'N':
ret = 0
continue
elif c == '(':
itms.append([7, -1])
itms.append([0, -1])
itms_l = itms_l + 2
continue
elif c == 'r':
gnt()
itms.append([8, -1])
itms.append([0, -1])
itms_l = itms_l + 2
continue
if itm[0] == 7:
gnt()
continue
if itm[0] == 8:
itms.append([9, ret])
itms.append([0, -1])
itms_l = itms_l + 2
continue
if itm[0] == 9:
gnt()
ret = ret * itm[1] * p + (1 - ret * itm[1]) * q
continue
print(int(ret * 100))