結果
| 問題 |
No.708 (+ー)の式
|
| コンテスト | |
| ユーザー |
|
| 提出日時 | 2018-06-29 23:40:17 |
| 言語 | C++14 (gcc 13.3.0 + boost 1.87.0) |
| 結果 |
WA
|
| 実行時間 | - |
| コード長 | 1,485 bytes |
| コンパイル時間 | 1,460 ms |
| コンパイル使用メモリ | 169,360 KB |
| 実行使用メモリ | 6,944 KB |
| 最終ジャッジ日時 | 2024-07-01 00:22:34 |
| 合計ジャッジ時間 | 2,044 ms |
|
ジャッジサーバーID (参考情報) |
judge4 / judge5 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 3 |
| other | AC * 10 WA * 2 |
コンパイルメッセージ
main.cpp: In function 'int main()':
main.cpp:49:22: warning: 'tmp' may be used uninitialized [-Wmaybe-uninitialized]
49 | else res += tmp;
| ~~~~^~~~~~
main.cpp:41:17: note: 'tmp' was declared here
41 | int tmp;
| ^~~
ソースコード
#include <bits/stdc++.h>
using namespace std;
#define rep(i, n) for (int i = 0; i < (int)(n); i++)
#define REP(i, k, n) for (int i = (int)(k); i < (int)(n); i++)
#define rrep(i, n) for (int i = (int)(n)-1; i >= 0; i--)
#define rREP(i, k, n) for (int i = (int)(n)-1; i >= k; i--)
#define fi first
#define se second
#define vi vector<int>
#define pb push_back
#define mp make_pair
#define pcnt __builtin_popcount
typedef long long ll;
const double inf = 900900900100.0;
const int MOD = (int)1e9 + 7;
const double EPS = 1e-9;
template<class T>bool chmax(T &a, const T &b) { if (a<b) { a=b; return 1; } return 0; }
template<class T>bool chmin(T &a, const T &b) { if (b<a) { a=b; return 1; } return 0; }
int main(){
string s;
cin >> s;
int res = 0;
bool flag = false;
rep(i,s.size()) {
if(s[i] == '-') flag = true;
if(s[i] == '+') flag = false;
if(s[i]>='0' && s[i]<='9'){
if(flag) res -= (int)(s[i]-'0');
else res += (int)(s[i]-'0');
flag = false;
}
if (s[i] == '('){
int tmp;
if(s[i+1]=='-') {res -= 2*(s[i+1]-'0'); i++;}
if(s[i+2]==')') continue;
if(s[i+2]=='+'){ tmp = (int)(s[i+1]-'0')+(s[i+3]-'0'); }
if(s[i+2]=='-'){ tmp = (int)(s[i+1]-'0')-(s[i+3]-'0'); }
if(flag) res-=tmp;
else res += tmp;
flag = false;
i+=4;
}
}
cout << res << endl;
return 0;
}