結果
問題 | No.708 (+ー)の式 |
ユーザー |
|
提出日時 | 2019-10-04 01:23:13 |
言語 | C++11(廃止可能性あり) (gcc 13.3.0) |
結果 |
AC
|
実行時間 | 2 ms / 2,000 ms |
コード長 | 1,066 bytes |
コンパイル時間 | 590 ms |
コンパイル使用メモリ | 85,100 KB |
実行使用メモリ | 6,820 KB |
最終ジャッジ日時 | 2024-10-03 06:45:37 |
合計ジャッジ時間 | 1,234 ms |
ジャッジサーバーID (参考情報) |
judge5 / judge4 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 12 |
ソースコード
#define _USE_MATH_DEFINES#include <cmath>#include <cstdio>#include <vector>#include <iostream>#include <algorithm>#include <string>#include<math.h>#include<iomanip>#include<stdio.h>#include <stdlib.h>#include<stdio.h>#include <queue>#include<map>#include <sstream>#include<set>#include<stack>//#include<bits/stdc++.h>using namespace std;int main() {string p;cin >> p;int ans = 0;bool g = 0;for (int i = 0; i < p.size(); i++) {if (p[i] == '+')g = 0;else if (p[i] == '-')g = 1;else if (p[i] >= '0'&&p[i] <= '9') {int b = p[i] - '0';if (!g)ans += b;else ans -= b;g = 0;}else if (p[i] == '(') {int a = 0;bool f = 0;for (int j = i+1; p[j] != ')';j++) {if (p[j] == '-')f = 1;else if (p[j] == '+')f = 0;else {int b = p[j] - '0';if (!f)a += b;else a -= b;f = 0;}i++;// cout << " a " << a << endl;}if(!g)ans += a;else ans -= a;g = 0;i++;}//cout << ans << endl;}cout << ans << endl;return 0;}