洛谷T289058 24点游戏(弱化版) A了 但代码极其丑陋
望dalo们优化 十分感谢
#include
using namespace std;
int x,y,z,w,ans;
char a[5] = {'0','+','-','*','/'};
bool flag = false;
int ja(int x,int y){return x + y;}
int jn(int x,int y){return x - y;}
int cg(int x,int y){return x * y;}
int cu(int x,int y){return x / y;}
void f(int f,char a,int g,char b,int h,char c,int j){
if(a == '+' && b == '+' && c == '+' && f+g+h+j == 24){flag = true;return;}
if(a == '+' && b == '+' && c == '-' && f+g+h-j == 24){flag = true;return;}
if(a == '+' && b == '+' && c == '*' && f+g+h*j == 24){flag = true;return;}
if(a == '+' && b == '+' && c == '/' && f+g+h/j == 24){flag = true;return;}
if(a == '+' && b == '-' && c == '+' && f+g-h+j == 24){flag = true;return;}
if(a == '+' && b == '-' && c == '-' && f+g-h-j == 24){flag = true;return;}
if(a == '+' && b == '-' && c == '*' && f+g-h*j == 24){flag = true;return;}
if(a == '+' && b == '-' && c == '/' && f+g-h/j == 24){flag = true;return;}
if(a == '+' && b == '*' && c == '+' && f+g*h+j == 24){flag = true;return;}
if(a == '+' && b == '*' && c == '-' && f+g*h-j == 24){flag = true;return;}
if(a == '+' && b == '*' && c == '*' && f+g*h*j == 24){flag = true;return;}
if(a == '+' && b == '*' && c == '/' && f+g*h/j == 24){flag = true;return;}
if(a == '+' && b == '/' && c == '+' && f+g/h+j == 24){flag = true;return;}
if(a == '+' && b == '/' && c == '-' && f+g/h-j == 24){flag = true;return;}
if(a == '+' && b == '/' && c == '*' && f+g/h*j == 24){flag = true;return;}
if(a == '+' && b == '/' && c == '/' && f+g/h/j == 24){flag = true;return;}
if(a == '-' && b == '+' && c == '+' && f-g+h+j == 24){flag = true;return;}
if(a == '-' && b == '+' && c == '-' && f-g+h-j == 24){flag = true;return;}
if(a == '-' && b == '+' && c == '*' && f-g+h*j == 24){flag = true;return;}
if(a == '-' && b == '+' && c == '/' && f-g+h/j == 24){flag = true;return;}
if(a == '-' && b == '-' && c == '+' && f-g-h+j == 24){flag = true;return;}
if(a == '-' && b == '-' && c == '-' && f-g-h-j == 24){flag = true;return;}
if(a == '-' && b == '-' && c == '*' && f-g-h*j == 24){flag = true;return;}
if(a == '-' && b == '-' && c == '/' && f-g-h/j == 24){flag = true;return;}
if(a == '-' && b == '*' && c == '+' && f-g*h+j == 24){flag = true;return;}
if(a == '-' && b == '*' && c == '-' && f-g*h-j == 24){flag = true;return;}
if(a == '-' && b == '*' && c == '*' && f-g*h*j == 24){flag = true;return;}
if(a == '-' && b == '*' && c == '/' && f-g*h/j == 24){flag = true;return;}
if(a == '-' && b == '/' && c == '+' && f-g/h+j == 24){flag = true;return;}
if(a == '-' && b == '/' && c == '-' && f-g/h-j == 24){flag = true;return;}
if(a == '-' && b == '/' && c == '*' && f-g/h*j == 24){flag = true;return;}
if(a == '-' && b == '/' && c == '/' && f-g/h/j == 24){flag = true;return;}
if(a == '*' && b == '+' && c == '+' && f*g+h+j == 24){flag = true;return;}
if(a == '*' && b == '+' && c == '-' && f*g+h-j == 24){flag = true;return;}
if(a == '*' && b == '+' && c == '*' && f*g+h*j == 24){flag = true;return;}
if(a == '*' && b == '+' && c == '/' && f*g+h/j == 24){flag = true;return;}
if(a == '*' && b == '-' && c == '+' && f*g-h+j == 24){flag = true;return;}
if(a == '*' && b == '-' && c == '-' && f*g-h-j == 24){flag = true;return;}
if(a == '*' && b == '-' && c == '*' && f*g-h*j == 24){flag = true;return;}
if(a == '*' && b == '-' && c == '/' && f*g-h/j == 24){flag = true;return;}
if(a == '*' && b == '*' && c == '+' && f*g*h+j == 24){flag = true;return;}
if(a == '*' && b == '*' && c == '-' && f*g*h-j == 24){flag = true;return;}
if(a == '*' && b == '*' && c == '*' && f*g*h*j == 24){flag = true;return;}
if(a == '*' && b == '*' && c == '/' && f*g*h/j == 24){flag = true;return;}
if(a == '*' && b == '/' && c == '+' && f*g/h+j == 24){flag = true;return;}
if(a == '*' && b == '/' && c == '-' && f*g/h-j == 24){flag = true;return;}
if(a == '*' && b == '/' && c == '*' && f*g/h*j == 24){flag = true;return;}
if(a == '*' && b == '/' && c == '/' && f*g/h/j == 24){flag = true;return;}
if(a == '/' && b == '+' && c == '+' && f/g+h+j == 24){flag = true;return;}
if(a == '/' && b == '+' && c == '-' && f/g+h-j == 24){flag = true;return;}
if(a == '/' && b == '+' && c == '*' && f/g+h*j == 24){flag = true;return;}
if(a == '/' && b == '+' && c == '/' && f/g+h/j == 24){flag = true;return;}
if(a == '/' && b == '-' && c == '+' && f/g-h+j == 24){flag = true;return;}
if(a == '/' && b == '-' && c == '-' && f/g-h-j == 24){flag = true;return;}
if(a == '/' && b == '-' && c == '*' && f/g-h*j == 24){flag = true;return;}
if(a == '/' && b == '-' && c == '/' && f/g-h/j == 24){flag = true;return;}
if(a == '/' && b == '*' && c == '+' && f/g*h+j == 24){flag = true;return;}
if(a == '/' && b == '*' && c == '-' && f/g*h-j == 24){flag = true;return;}
if(a == '/' && b == '*' && c == '*' && f/g*h*j == 24){flag = true;return;}
if(a == '/' && b == '*' && c == '/' && f/g*h/j == 24){flag = true;return;}
if(a == '/' && b == '/' && c == '+' && f/g/h+j == 24){flag = true;return;}
if(a == '/' && b == '/' && c == '-' && f/g/h-j == 24){flag = true;return;}
if(a == '/' && b == '/' && c == '*' && f/g/h*j == 24){flag = true;return;}
if(a == '/' && b == '/' && c == '/' && f/g/h/j == 24){flag = true;return;}
return;
}
int main(){
//freopen("game15.in","r",stdin);
//freopen("game15.out","w",stdout);
scanf("%d %d %d %d",&x,&y,&z,&w);
for(int i=1;i<=4;i++){
for(int j=1;j<=4;j++){
for(int k=1;k<=4;k++){
f(x,a[i],y,a[j],z,a[k],w);
}
}
}for(int i=1;i<=4;i++){
for(int j=1;j<=4;j++){
for(int k=1;k<=4;k++){
f(x,a[i],y,a[j],w,a[k],z);
}
}
}for(int i=1;i<=4;i++){
for(int j=1;j<=4;j++){
for(int k=1;k<=4;k++){
f(x,a[i],z,a[j],y,a[k],w);
}
}
}for(int i=1;i<=4;i++){
for(int j=1;j<=4;j++){
for(int k=1;k<=4;k++){
f(x,a[i],z,a[j],w,a[k],y);
}
}
}for(int i=1;i<=4;i++){
for(int j=1;j<=4;j++){
for(int k=1;k<=4;k++){
f(x,a[i],w,a[j],z,a[k],y);
}
}
}for(int i=1;i<=4;i++){
for(int j=1;j<=4;j++){
for(int k=1;k<=4;k++){
f(x,a[i],w,a[j],y,a[k],z);
}
}
}for(int i=1;i<=4;i++){
for(int j=1;j<=4;j++){
for(int k=1;k<=4;k++){
f(y,a[i],x,a[j],z,a[k],w);
}
}
}for(int i=1;i<=4;i++){
for(int j=1;j<=4;j++){
for(int k=1;k<=4;k++){
f(y,a[i],x,a[j],w,a[k],z);
}
}
}for(int i=1;i<=4;i++){
for(int j=1;j<=4;j++){
for(int k=1;k<=4;k++){
f(y,a[i],z,a[j],x,a[k],w);
}
}
}for(int i=1;i<=4;i++){
for(int j=1;j<=4;j++){
for(int k=1;k<=4;k++){
f(y,a[i],z,a[j],w,a[k],x);
}
}
}for(int i=1;i<=4;i++){
for(int j=1;j<=4;j++){
for(int k=1;k<=4;k++){
f(y,a[i],w,a[j],z,a[k],x);
}
}
}for(int i=1;i<=4;i++){
for(int j=1;j<=4;j++){
for(int k=1;k<=4;k++){
f(y,a[i],w,a[j],x,a[k],z);
}
}
}for(int i=1;i<=4;i++){
for(int j=1;j<=4;j++){
for(int k=1;k<=4;k++){
f(z,a[i],y,a[j],x,a[k],w);
}
}
}for(int i=1;i<=4;i++){
for(int j=1;j<=4;j++){
for(int k=1;k<=4;k++){
f(z,a[i],y,a[j],w,a[k],x);
}
}
}for(int i=1;i<=4;i++){
for(int j=1;j<=4;j++){
for(int k=1;k<=4;k++){
f(z,a[i],x,a[j],y,a[k],w);
}
}
}for(int i=1;i<=4;i++){
for(int j=1;j<=4;j++){
for(int k=1;k<=4;k++){
f(z,a[i],x,a[j],w,a[k],y);
}
}
}for(int i=1;i<=4;i++){
for(int j=1;j<=4;j++){
for(int k=1;k<=4;k++){
f(z,a[i],w,a[j],x,a[k],y);
}
}
}for(int i=1;i<=4;i++){
for(int j=1;j<=4;j++){
for(int k=1;k<=4;k++){
f(z,a[i],w,a[j],y,a[k],x);
}
}
}for(int i=1;i<=4;i++){
for(int j=1;j<=4;j++){
for(int k=1;k<=4;k++){
f(w,a[i],y,a[j],z,a[k],x);
}
}
}for(int i=1;i<=4;i++){
for(int j=1;j<=4;j++){
for(int k=1;k<=4;k++){
f(w,a[i],y,a[j],x,a[k],z);
}
}
}for(int i=1;i<=4;i++){
for(int j=1;j<=4;j++){
for(int k=1;k<=4;k++){
f(w,a[i],z,a[j],y,a[k],x);
}
}
}for(int i=1;i<=4;i++){
for(int j=1;j<=4;j++){
for(int k=1;k<=4;k++){
f(w,a[i],z,a[j],x,a[k],y);
}
}
}for(int i=1;i<=4;i++){
for(int j=1;j<=4;j++){
for(int k=1;k<=4;k++){
f(w,a[i],x,a[j],z,a[k],y);
}
}
}for(int i=1;i<=4;i++){
for(int j=1;j<=4;j++){
for(int k=1;k<=4;k++){
f(w,a[i],x,a[j],y,a[k],z);
}
}
}
if(!flag)printf("No");
else printf("Yes");
return 0;
}