比赛 板子大赛 评测结果 AWWWWWWWEE
题目名称 表达式求值 最终得分 10
用户昵称 zqy 运行时间 0.495 s
代码语言 C++ 内存使用 3.42 MiB
提交时间 2025-01-22 11:41:45
显示代码纯文本
#include <iostream>
#include <cstdio>
#include <cstring>
using namespace std;
const int N=100005;
char s[N],f[N];
int g[N],p,n,num,ans,t;
int main(){
    freopen("expr2013.in","r",stdin);
    freopen("expr2013.out","w",stdout);
    scanf("%s",s+1);
    n=strlen(s+1);
    for(int i=1;i<=n;i++){
        if(s[i]>='0'&&s[i]<='9'){
            num=num*10+s[i]-'0';
            num%=10000;
        }else{
            if(t&&f[t]=='*'){
                t--;
                g[p]*=num;g[p]%=10000;
            }else g[++p]=num;
            f[++t]=s[i];
            num=0;
        }
    }
    g[++p]=num;
    while(t){
        int a=g[p],b=g[p-1];p-=2;
        if(f[t]=='+')g[++p]=a+b,t--;
        if(f[t]=='*')g[++p]=a*b,t--;
    }
    printf("%d\n",g[1]);
    return 0;
}