解法:栈!
#include<bits/stdc++.h>
using namespace std;
int main()
{
int T;
scanf("%d",&T);
while(T--)
{
stack<float>pq;
char s[1005],str[1005];
string s1;
scanf("%s",str);
int len=strlen(str);
for(int i=len-1;i>=0;i--)
{
if(isdigit(str[i]))
{
int k=0;
while(i>=0&&str[i]!=','&&str[i]!='(')
{
s[k++]=str[i];
i--;
}
s[k]='\0';
reverse(s,s+k);
float tmp=atof(s);
if(s[0]=='-')
{
tmp=atof(s+1);
tmp=0.0-tmp;
}
pq.push(tmp);
}
if(isalpha(str[i]))
{
float a,b,sum,maxn,minn;
if(str[i]=='x')
{
a=pq.top();
pq.pop();
b=pq.top();
pq.pop();
maxn=max(a,b);
pq.push(maxn);
i-=2;
}
if(str[i]=='d')
{
a=pq.top();
pq.pop();
b=pq.top();
pq.pop();
sum=a+b;
pq.push(sum);
i-=2;
}
if(str[i]=='n')
{
a=pq.top();
pq.pop();
b=pq.top();
pq.pop();
minn=min(a,b);
pq.push(minn);
i-=2;
}
}
}
float cnt=pq.top();
pq.pop();
printf("%.0f\n",cnt);
}
return 0;
}