求助 此代码一分不得 但样例全过
#include<iostream>
#include<stack>
using namespace std;
string a;
long long b[100001],cnt=0;
int search(int x,int y){
long long ans=0,x2=x,cnt2=1;
if(y==0){
while(a[x]!='+'&&a[x]!='*'&&x!=0){
// cout<<"xl="<<x<<endl;
x--;
}
for(int i=x2;i>=x+1;i--){
ans+=(a[i]-'0')*cnt2;
a[i]='0';
cnt2*=10;
// cout<<"ansleft="<<ans<<endl;
}
}else{
while(a[x]!='+'&&a[x]!='*'&&x!=a.length()){
// cout<<"xr="<<x<<endl;
x++;
}
for(int i=x2;i<x;i++){
ans*=cnt2;
ans+=(a[i]-'0');
a[i]='0';
cnt2*=10;
// cout<<"ansright"<<ans<<endl;
}
}
return ans;
}
int main(){
cin>>a;
int i=0;
while(i!=a.length()){
if(a[i]=='*'){
b[cnt]=search(i-1,0)*search(i+1,1)%10000;
// cout<<"b[cnt]="<<b[cnt]<<endl;
cnt++;
}
i++;
}
int fans=0;
for(int i=0;i<cnt+1;i++){
fans+=b[i]%10000;
}
for(int i=0;i<a.length();i++){
if(a[i]!='+'&&a[i]!='*') fans+=a[i]-'0';
}
cout<<fans%10000;
return 0;
}