时间限制: 1.0s
内存限制: 512.0MB
#include<cstdio>
#include<stack>
#include<ctype.h>
using namespace std;
char s[10];
stack<int> num;
stack<char> f;
bool greater(char x,char y){
if((x=='x' || x=='/') &&(y=='+' || y=='-')) return true;
else return false;
}
int cal(int x,int y,char c){
if(c=='+') return x+y;
else if(c=='-') return x-y;
else if(c=='x') return x*y;
else return x/y;
}
int main(){
int n;
scanf("%d",&n);
for(int i=0;i<n;i++){
scanf("%s",s);
for(int i=0;i<7;i++){
if(i%2==0){
num.push(s[i]-'0');
}
else{
if(i==1 || greater(s[i],f.top()))
f.push(s[i]);
else{
int a=num.top(); num.pop();
int b=num.top(); num.pop();
char x=f.top();
int c=cal(b,a,x);
f.pop();
f.push(s[i]);
num.push(c);
}
}
}
while(!f.empty()){
char x=f.top();
f.pop();
int a=num.top(); num.pop();
int b=num.top(); num.pop();
int c=cal(b,a,x);
num.push(c);
}
int a=num.top();
if(a==24) printf("Yes\n");
else printf("No\n");
num.pop();
}
return 0;
}