結果
| 問題 |
No.708 (+ー)の式
|
| コンテスト | |
| ユーザー |
lam6er
|
| 提出日時 | 2025-03-20 21:15:52 |
| 言語 | PyPy3 (7.3.15) |
| 結果 |
RE
|
| 実行時間 | - |
| コード長 | 1,026 bytes |
| コンパイル時間 | 174 ms |
| コンパイル使用メモリ | 82,600 KB |
| 実行使用メモリ | 67,324 KB |
| 最終ジャッジ日時 | 2025-03-20 21:16:38 |
| 合計ジャッジ時間 | 1,565 ms |
|
ジャッジサーバーID (参考情報) |
judge3 / judge1 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 3 |
| other | AC * 9 RE * 3 |
ソースコード
def evaluate(s):
# Process all parentheses
while ')' in s:
end = s.find(')')
start = s.rfind('(', 0, end)
sub_expr = s[start+1:end]
sub_val = calculate(sub_expr)
s = s[:start] + str(sub_val) + s[end+1:]
# Now evaluate the expression without parentheses
return calculate(s)
def calculate(s):
if not s:
return 0
i = 0
n = len(s)
# Process the first number
sign = 1
if i < n and s[i] in '+-':
sign = -1 if s[i] == '-' else 1
i += 1
current = sign * int(s[i])
i += 1
# Process subsequent operators and numbers
while i < n:
op = s[i]
i += 1
num_sign = 1
if i < n and s[i] in '+-':
num_sign = -1 if s[i] == '-' else 1
i += 1
current = current + num_sign * int(s[i]) if op == '+' else current - num_sign * int(s[i])
i += 1
return current
def main():
s = input().strip()
print(evaluate(s))
if __name__ == "__main__":
main()
lam6er