結果
| 問題 |
No.708 (+ー)の式
|
| コンテスト | |
| ユーザー |
k0jump
|
| 提出日時 | 2018-06-30 06:33:03 |
| 言語 | Python3 (3.13.1 + numpy 2.2.1 + scipy 1.14.1) |
| 結果 |
WA
|
| 実行時間 | - |
| コード長 | 967 bytes |
| コンパイル時間 | 96 ms |
| コンパイル使用メモリ | 12,800 KB |
| 実行使用メモリ | 11,008 KB |
| 最終ジャッジ日時 | 2024-07-01 00:49:21 |
| 合計ジャッジ時間 | 1,166 ms |
|
ジャッジサーバーID (参考情報) |
judge4 / judge5 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 3 |
| other | AC * 10 WA * 2 |
ソースコード
from collections import deque
s = input()
total = 0
done = [0]*len(s)
lefts,rights = deque(),deque()
#get ( ) position
for i in range(len(s)):
if s[i] == '(':
lefts.append(i)
elif s[i] == ')':
rights.append(i)
#calc in ( )
while 0 < len(lefts):
l = lefts.popleft()
r = rights.popleft()
done[l-1],done[l],done[r] = 1,1,1
tmp = 0
sign = '+'
for j in range(l+1,r):
done[j] = 1
if s[j] == '+' or s[j] == '-':
sign = s[j]
else:
if sign == '+':
tmp += int(s[j])
else:
tmp -= int(s[j])
if s[l-1] == '+':
total += tmp
else:
total -= tmp
#calc all
sign = '+'
for x in range(len(s)):
if done[x] == 0:
if s[x] == '+' or s[x] == '-':
sign = s[x]
else:
if sign == '+':
total += int(s[x])
else:
total -= int(s[x])
print(total)
k0jump