#include<stack>
#include<cstring>
#include<iostream>
using namespace std;
int priority(char a, char b);
int main(){
stack <int>snum;
stack<char>sopr;
char s[7],temp;
int flag=0,a[4],sum;
for(int i=0;i<7;i++){
scanf("%c",&s[i]);
}
sopr.push(s[1]);
snum.push(s[0]-'0');
snum.push(s[2]-'0');
for(int i=3;i<7;i++){
if(i%2!=0){//运算符
temp=sopr.top();
flag = priority(temp, s[i]);
if(flag==1)//栈外优先级高
sopr.push(s[i]);
else{//栈内优先级高,弹出
sopr.pop();
int n1=snum.top();
int n2=snum.top();
if(temp=='x'){
sum=n1*n2;
}
else if(temp=='/'){
sum=n2/n1;
}
else if(temp=='+'){
sum=n2+n1;
}
else{
sum=n2-n1;
}
snum.push(sum);
}
}
else{
snum.push(s[i]-'0');
}
}
if(snum.top()==24)
cout<<"Yes"<<endl;
else
cout<<"No"<<endl;
return 0;
}
int priority(char a, char b)
{//a-栈内;b-栈外
char c[] = "+-x/";
if (a == c[0] || a == c[1])
{
if (b == c[0] || b == c[1])
return -1;//栈内优先级高
if (b == c[2] || b == c[3])
return 1;//栈外优先级高
}
else
{
return -1;
}
}
08-21
448
03-28
583
02-25
3470