結果

問題 No.49 算数の宿題
ユーザー prog470
提出日時 2017-12-24 12:13:15
言語 C++14
(gcc 13.3.0 + boost 1.87.0)
結果
AC  
実行時間 2 ms / 5,000 ms
コード長 1,260 bytes
コンパイル時間 758 ms
コンパイル使用メモリ 83,080 KB
実行使用メモリ 5,248 KB
最終ジャッジ日時 2024-12-23 01:58:32
合計ジャッジ時間 1,253 ms
ジャッジサーバーID
(参考情報)
judge5 / judge3
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
other AC * 10
権限があれば一括ダウンロードができます

ソースコード

diff #

#include <algorithm>
#include <cmath>
#include <cstdio>
#include <cstring>
#include <deque>
#include <iostream>
#include <map>
#include <queue>
#include <set>
#include <stack>
#include <string>
#include <utility>
#include <vector>

#define CK(N, A, B) (A <= N && N < B)
#define REP(i, a, b) for (int i = a; i < b; i++)
#define RREP(i, a, b) for (int i = (b - 1); a <= i; i--)
#define F first
#define S second
#define ll long long

const int INF = 1e9;
const long long LLINF = 1e18;

using namespace std;

int dy[] = {0,1,0,-1};
int dx[] = {1,0,-1,0};
int dy8[] = {0,1,1,1,0,-1,-1,-1};
int dx8[] = {1,1,0,-1,-1,-1,0,1};

/*==================================================*/
/*variable*/
string S;
/*==================================================*/
/*function*/

/*==================================================*/

int main() {
    cin>>S;
    int num = 0;
    int d = 10;
    int t = 0;
    int op = 0;

    REP(i,0,S.size()){
        if(isdigit(S[i])){
            num = num*d + (S[i] - '0');
        }else{
            if(op == 0) t += num;
            else t *= num;

            if(S[i] == '*') op = 0;
            else op = 1;

            num = 0;
        }
    }
    if(op == 0) t += num;
    else t *= num;

    cout<<t<<endl;
    return 0;
}
0