Run ID:72927

提交时间:2024-05-14 17:38:13

#include<bits/stdc++.h> using namespace std; //四则运算 float f(float x,float y,int n){ switch (n){ case 1: return x+y; case 2: return x-y; case 3: return x*y; case 4: return 1.0*x/y; } } //((AOB)OC)OD bool f1(float q,float w,float e,float r){ float sum,sum1,sum2; for(int i=1;i<=4;i++){ sum1=f(q,w,i); for(int j=1;j<=4;j++){ sum2=f(sum1,e,j); for(int h=1;h<=4;h++){ sum=f(sum2,r,h); if(sum==24) { // printf("((%f%d%f)%d%f)%d%f\n",q,i,w,j,e,h,r); return true; } } } } return false; } //(AO(BOC)OD bool f2(float q,float w,float e,float r){ float sum,sum1,sum2; for(int i=1;i<=4;i++){ sum1=f(w,e,i); for(int j=1;j<=4;j++){ sum2=f(sum1,q,j); for(int h=1;h<=4;h++){ sum=f(sum2,r,h); if(sum==24) { // printf("%f%d(%f%d%f)%d%f\n",q,j,w,i,e,h,r); return true; } } } } return false; } //AO(BO(COD)) bool f3(float q,float w,float e,float r){ float sum,sum1,sum2; for(int i=1;i<=4;i++){ sum1=f(e,r,i); for(int j=1;j<=4;j++){ sum2=f(w,sum1,j); for(int h=1;h<=4;h++){ sum=f(q,sum2,h); //cout<<sum1<<" "<<sum2<<" "<<sum<<endl; //printf("%f%d(%f%d(%f%d%f))=%f\n",q,h,w,j,e,i,r,sum); if(sum==24) { // printf("%f%d(%f%d(%f%d%f))\n",q,h,w,j,e,i,r); return true; } } } } return false; } //AO((BOC)OD) bool f4(float q,float w,float e,float r){ float sum,sum1,sum2; for(int i=1;i<=4;i++){ sum1=f(w,e,i); for(int j=1;j<=4;j++){ sum2=f(sum1,r,j); for(int h=1;h<=4;h++){ sum=f(sum2,q,h); if(sum==24) { // printf("%f%d((%f%d%f)%d%f)\n",q,h,w,i,e,j,r); return true; } } } } return false; } //(AOB)O(COD) bool f5(float q,float w,float e,float r){ float sum,sum1,sum2; for(int i=1;i<=4;i++){ sum1=f(q,w,i); for(int j=1;j<=4;j++){ sum2=f(e,r,j); for(int h=1;h<=4;h++){ sum=f(sum1,sum2,h); if(sum==24) { // printf("(%f%d%f)%d(%f%d%f))\n",q,i,w,h,e,j,r); return true; } } } } return false; } int main(){ float a[4]; int ans=0; while(cin>>a[0]>>a[1]>>a[2]>>a[3]){ ans=0; //终止条件 if(a[0]==0&&a[1]==0&&a[2]==0&&a[3]==0) return 0; //四个数组合 for(int i=0;i<4;i++) for(int j=0;j<4;j++) for(int k=0;k<4;k++) for(int y=0;y<4;y++) { if(i!=j&&i!=k&&i!=y&&j!=k&&j!=y&&k!=y){ //检验5种运算方式是否符合要求 if(f1(a[i],a[j],a[k],a[y])) ans++; if(f2(a[i],a[j],a[k],a[y])) ans++; if(f3(a[i],a[j],a[k],a[y])) ans++; if(f4(a[i],a[j],a[k],a[y])) ans++; if(f5(a[i],a[j],a[k],a[y])) ans++; } } if(ans!=0) cout<<"YES"<<endl; else cout<<"NO"<<endl; } return 0; }