結果
| 問題 | 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;
}
            
            
            
        