結果
| 問題 |
No.708 (+ー)の式
|
| コンテスト | |
| ユーザー |
ikd
|
| 提出日時 | 2018-07-16 09:09:58 |
| 言語 | Nim (2.2.0) |
| 結果 |
WA
|
| 実行時間 | - |
| コード長 | 583 bytes |
| コンパイル時間 | 3,120 ms |
| コンパイル使用メモリ | 66,156 KB |
| 実行使用メモリ | 6,944 KB |
| 最終ジャッジ日時 | 2024-07-01 03:12:31 |
| 合計ジャッジ時間 | 3,604 ms |
|
ジャッジサーバーID (参考情報) |
judge2 / judge4 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 3 |
| other | AC * 10 WA * 2 |
コンパイルメッセージ
/home/judge/data/code/Main.nim(1, 28) Warning: Use the new 'sugar' module instead; future is deprecated [Deprecated] /home/judge/data/code/Main.nim(1, 8) Warning: imported and not used: 'strutils' [UnusedImport] /home/judge/data/code/Main.nim(1, 18) Warning: imported and not used: 'sequtils' [UnusedImport] /home/judge/data/code/Main.nim(1, 28) Warning: imported and not used: 'future' [UnusedImport]
ソースコード
import strutils, sequtils, future, algorithm
var
s=stdin.readLine
res=0
stack=newSeq[char]()
for i in countdown(s.len-1, 0):
if s[i]=='(':
var
ret=stack.pop.ord-'0'.ord
c=stack.pop
while c!=')':
if c=='+':
ret+=stack.pop.ord-'0'.ord
else:
ret-=stack.pop.ord-'0'.ord
c=stack.pop
stack.add((ret+'0'.ord).chr)
else:
stack.add(s[i])
reverse(stack)
res=stack[0].ord-'0'.ord
for i in 1..<stack.len:
if stack[i]=='+':
res+=stack[i+1].ord-'0'.ord
elif stack[i]=='-':
res-=stack[i+1].ord-'0'.ord
echo res
ikd