记录编号 454911 评测结果 AAAAAAAAAA
题目名称 [NOIP 2013PJ]表达式求值 最终得分 100
用户昵称 GravatarkZime 是否通过 通过
代码语言 C++ 运行时间 0.080 s
提交时间 2017-09-30 11:24:41 内存使用 9.95 MiB
显示代码纯文本
#include <cstdio>
#include <iostream>
#include <vector>
using namespace std;

char str[2100003];
int opr[1000004], num[1000004], no, nn;

int get_qua(int l, int r) { 
    int ans = num[l];
    for (int i = l + 1; i <= r; i++) { 
        (ans *= num[i]) %= 10000;
    }
    return ans;
}

int main() {  
    freopen("expr2013.in", "r", stdin);
    freopen("expr2013.out", "w", stdout);
    cin >> str;
    opr[no++] = -1;
    for (int i = 0; str[i]; i++) { 
        if (isdigit(str[i])) { 
            int ans = 0;
            for (; isdigit(str[i]); i++)
                ans = ans * 10 + str[i] - '0';
            i--;
            num[nn++] = ans;
        }
        if (str[i] == '+') 
            opr[no++] = nn - 1;
    }
    opr[no++] = nn - 1;
    int ans = 0;
    for (int i = 1; i < no; i++) { 
        (ans += get_qua(opr[i - 1] + 1, opr[i])) %= 10000;
    }
    printf("%d\n", ans);
    
}