WA第七个点,给个第七个点的数据都好(今天的下载次数用完了...)
#include<bits/stdc++.h>
using namespace std;
int a[5],b[5],c[5];
char q[7];
bool w;
int f() { //手动模拟各种形如(a?b)?(c?d)的情况
int q,e;
if(b[1]*b[2]+b[3]*b[4]==24&&!w) {
w=1;
q=b[1]*b[2];
e=b[3]*b[4];
cout<<max(b[1],b[2])<<"*"<<min(b[1],b[2])<<"="<<q<<endl;
cout<<max(b[3],b[4])<<"*"<<min(b[3],b[4])<<"="<<e<<endl;
cout<<max(q,e)<<"+"<<min(q,e)<<"=24";
}
if(b[1]*b[2]-b[3]*b[4]==24&&!w) {
w=1;
q=b[1]*b[2];
e=b[3]*b[4];
if(q>w) {
cout<<max(b[1],b[2])<<"*"<<min(b[1],b[2])<<"="<<q<<endl;
cout<<max(b[3],b[4])<<"*"<<min(b[3],b[4])<<"="<<e<<endl;
cout<<max(q,e)<<"-"<<min(q,e)<<"=24";
}
}
if(b[1]/b[2]-b[3]/b[4]==24&&b[1]%b[2]==0&&b[3]%b[4]==0&&!w) {
w=1;
q=b[1]/b[2];
e=b[3]/b[4];
if(q>w) {
cout<<max(b[1],b[2])<<"/"<<min(b[1],b[2])<<"="<<q<<endl;
cout<<max(b[3],b[4])<<"/"<<min(b[3],b[4])<<"="<<e<<endl;
cout<<max(q,e)<<"-"<<min(q,e)<<"=24";
}
}
if(b[1]/b[2]+b[3]/b[4]==24&&b[1]%b[2]==0&&b[3]%b[4]==0&&!w) {
w=1;
q=b[1]/b[2];
e=b[3]/b[4];
cout<<max(b[1],b[2])<<"/"<<min(b[1],b[2])<<"="<<q<<endl;
cout<<max(b[3],b[4])<<"/"<<min(b[3],b[4])<<"="<<e<<endl;
cout<<max(q,e)<<"+"<<min(q,e)<<"=24";
}
if((b[1]-b[2])*(b[3]-b[4])==24&&b[1]>b[2]&&b[3]>b[4]&&!w) {
w=1;
q=b[1]-b[2];
e=b[3]-b[4];
cout<<max(b[1],b[2])<<"-"<<min(b[1],b[2])<<"="<<q<<endl;
cout<<max(b[3],b[4])<<"-"<<min(b[3],b[4])<<"="<<e<<endl;
cout<<max(q,e)<<"*"<<min(q,e)<<"=24";
}
if((b[1]+b[2])*(b[3]+b[4])==24&&!w) {
w=1;
q=b[1]+b[2];
e=b[3]+b[4];
cout<<max(b[1],b[2])<<"+"<<min(b[1],b[2])<<"="<<q<<endl;
cout<<max(b[3],b[4])<<"+"<<min(b[3],b[4])<<"="<<e<<endl;
cout<<max(q,e)<<"*"<<min(q,e)<<"=24";
}
if((b[1]+b[2])*(b[3]-b[4])==24&&b[3]>b[4]&&!w) {
w=1;
q=b[1]+b[2];
e=b[3]-b[4];
cout<<max(b[1],b[2])<<"+"<<min(b[1],b[2])<<"="<<q<<endl;
cout<<max(b[3],b[4])<<"-"<<min(b[3],b[4])<<"="<<e<<endl;
cout<<max(q,e)<<"*"<<min(q,e)<<"=24";
}
if(b[3]!=b[4])if((b[1]-b[2])/(b[3]-b[4])==24&&b[1]>b[2]&&b[3]>b[4]&&(b[1]-b[2])%(b[3]-b[4])==0&&!w) {
w=1;
q=b[1]-b[2];
e=b[3]-b[4];
cout<<max(b[1],b[2])<<"-"<<min(b[1],b[2])<<"="<<q<<endl;
cout<<max(b[3],b[4])<<"-"<<min(b[3],b[4])<<"="<<e<<endl;
cout<<max(q,e)<<"/"<<min(q,e)<<"=24";
}
if((b[1]+b[2])/(b[3]+b[4])==24&&(b[1]+b[2])%(b[3]+b[4])==0&&!w) {
w=1;
q=b[1]+b[2];
e=b[3]+b[4];
cout<<max(b[1],b[2])<<"+"<<min(b[1],b[2])<<"="<<q<<endl;
cout<<max(b[3],b[4])<<"+"<<min(b[3],b[4])<<"="<<e<<endl;
cout<<max(q,e)<<"/"<<min(q,e)<<"=24";
}
if(b[3]-b[4]!=0)if((b[1]+b[2])/(b[3]-b[4])==24&&b[3]>b[4]&&(b[1]+b[2])%(b[3]+b[4])==0&&!w) {
w=1;
q=b[1]+b[2];
e=b[3]-b[4];
cout<<max(b[1],b[2])<<"+"<<min(b[1],b[2])<<"="<<q<<endl;
cout<<max(b[3],b[4])<<"-"<<min(b[3],b[4])<<"="<<e<<endl;
cout<<max(q,e)<<"/"<<min(q,e)<<"=24";
}
}
int dfs(int n,int m) { //dfs各种((a?b)?c)?d的情况
if(n==4&&m==24) {
cout<<max(b[1],b[2])<<q[1]<<min(b[1],b[2])<<"="<<c[1]<<endl;
cout<<max(c[1],b[3])<<q[2]<<min(c[1],b[3])<<"="<<c[2]<<endl;
cout<<max(c[2],b[4])<<q[3]<<min(c[2],b[4])<<"=24";
w=1;
return 0;
}
if(n==4)return 0;
if(m%b[n+1]==0) {
c[n]=c[n-1]/b[n+1];
q[n]='/';
dfs(n+1,m/b[n+1]);
}
if(w)return 0;
c[n]=c[n-1]*b[n+1];
q[n]='*';
dfs(n+1,m*b[n+1]);
if(w)return 0;
c[n]=c[n-1]+b[n+1];
q[n]='+';
dfs(n+1,m+b[n+1]);
if(w)return 0;
if(c[n-1]>b[n+1]) {
c[n]=c[n-1]-b[n+1];
q[n]='-';
dfs(n+1,m-b[n+1]);
}
if(w)return 0;
q[n]=0;
c[n]=0;
}
int main() {
cin>>a[1]>>a[2]>>a[3]>>a[4];
for(int i=1; i<=4; i++) {
b[1]=a[i];
for(int j=1; j<=4; j++) {
if(i==j)continue;
b[2]=a[j];
for(int k=1; k<=4; k++) {
if(i==k||j==k)continue;
b[3]=a[k];
for(int l=1; l<=4; l++) {
if(i==l||j==l||k==l)continue;
b[4]=a[l];
c[0]=b[1];
dfs(1,b[1]);
f();
if(w)return 0;
}
}
}
}
if(!w)cout<<"No answer!";
}
膜拜各位大佬