WA50求助
查看原帖
WA50求助
768530
Expert_Dream楼主2023/8/24 08:52

输入:

9 7 5 7

我输出:

9-7=2
5+7=12
2*12=24


正确输出:

9-7=2
7+5=12
12*2=24

请问这两种有什么区别,Special Judge不应该是判一样的嘛?

dalao求调

#include<bits/stdc++.h>
#define ll long long
#define endl "\n"
using namespace std;
int a[5];
char c[5];
int js(int x,int k,int y){
	if(k==1) return x+y;
	if(k==2) return abs(x-y);
	if(k==3) return x*y;
	if(k==4) return (y==0 || x%y || x<y) ? -1e9:x/=y;
}void output(int x,int k,int y){
	if(k==1) printf("%d%c%d=%d\n",x,c[k],y,x+y); 
	if(k==2) printf("%d%c%d=%d\n",max(x,y),c[k],min(x,y),abs(x-y));
	if(k==3) printf("%d%c%d=%d\n",x,c[k],y,x*y);
	if(k==4) printf("%d%c%d=%d\n",x,c[k],y,x/y);
}
int main(){
	for(int i  =1;i <= 4;i++){
		cin >> a[i];
	}c[1]='+';c[2]='-';c[3]='*';c[4]='/';
	do{
		for(int i = 1;i <= 4;i++){
			for(int j = 1;j <= 4;j++){
				for(int k = 1;k <= 4;k++){
					if(js(js(js(a[1],i,a[2]),j,a[3]),k,a[4]) == 24){
						output(a[1],i,a[2]);
						output(js(a[1],i,a[2]),j,a[3]);
						output(js(js(a[1],i,a[2]),j,a[3]),k,a[4]);
						return 0;
					}else if(js(js(a[1],i,a[2]),j,js(a[3],k,a[4])) == 24){
						output(a[1],i,a[2]);
						output(a[3],k,a[4]);
						output(js(a[1],i,a[2]),j,js(a[3],k,a[4]));
						return 0;
					}
				}
			}
		}
	}while(next_permutation(a+1,a+5));
	cout<<"No answer!";
	return 0;
}
2023/8/24 08:52
加载中...