比赛 test2 评测结果 AWWWWWWWWW
题目名称 表达式求值 最终得分 10
用户昵称 31627012 运行时间 0.084 s
代码语言 C++ 内存使用 0.31 MiB
提交时间 2017-03-12 20:39:13
显示代码纯文本
#include<iostream>
#include<cstdio>
#include<cmath>
#include<algorithm>
#include<stack>
#include<queue>
#include<cstring>
#include<string>
#include<cctype>
#define itn int
using namespace std;
string s;int ans=0;
int main(){
	freopen("expr2013.in","r",stdin);
	freopen("expr2013.out","w",stdout);
	cin>>s;long long a=0,b=0,c=0;
	int len=s.size();bool flag1=0,flag2=0;
	for (int i=0;i<len;i++){
		if (flag1&&!flag2){
			if (isdigit(s[i])) {b*=10;b+=s[i]-'0';b%=10000;}
			else if (!isdigit(s[i+1])) {ans+=(a+b)%10000;}		
		}
		if (flag2){
			if (!isdigit(s[i+1])) {c+=(a%10000)*(b%10000);b=0;}
			else if (isdigit(s[i])) {b*=10;b+=s[i]-'0';b%=10000;};
		}
		if (!flag2){
			if (!flag1){
				if (isdigit(s[i])) {a*=10;a+=s[i]-'0';a%=10000;}
				else if (s[i]=='+') flag1=1;
				else if (s[i]=='*') flag2=1;
			}
		}
	}
	printf("%lld",ans+b+c+a);
}