3个点AC,其他全RE,求解
  • 板块P1236 算24点
  • 楼主WBZDZMX
  • 当前回复0
  • 已保存回复0
  • 发布时间2024/8/30 14:21
  • 上次更新2024/8/30 17:36:32
查看原帖
3个点AC,其他全RE,求解
1286216
WBZDZMX楼主2024/8/30 14:21
#include<bits/stdc++.h>
using namespace std;
char szys[5]={'+','-','*','/'};
int ys(int a,int b,char c){
	switch(c){
		case '+':return a+b;
		case '-':return a-b;
		case '*':return a*b;
		case '/':return a/b;
	}
	return 0;
}
int ys_1(int a,int b,int c,int d,char i,char o,char p){
	int ret=0;
	ret=ys(a,b,i);
	ret=ys(ret,c,o);
	ret=ys(ret,d,p);
	return ret;
}
int ys_2(int a,int b,int c,int d,char i,char o,char p){
	int ret=0;
	ret=ys(b,c,o);
	ret=ys(a,ret,i);
	ret=ys(ret,d,p);
	return ret;
}
int ys_3(int a,int b,int c,int d,char i,char o,char p){
	int ret=0;
	ret=ys(b,c,o);
	ret=ys(ret,d,p);
	ret=ys(a,ret,i);
	return ret;
}
int ys_4(int a,int b,int c,int d,char i,char o,char p){
	int ret=0;
	ret=ys(c,d,p);
	ret=ys(b,ret,o);
	ret=ys(a,ret,i);
	return ret;
}
int ys_5(int a,int b,int c,int d,char i,char o,char p){
	int ret=0,rett=0;
	ret=ys(a,b,i);
	rett=ys(c,d,p);
	rett=ys(ret,rett,o);
	return rett;
}
int yss(int a,int b,char c){
	int ret=0;
	ret=ys(a,b,c);
	return ret;
}
int main(){
	int a,b,c,d;
	cin>>a>>b>>c>>d;
	int ret=0;
	for(int i=0;i<4;i++){
		for(int j=0;j<4;j++){
			for(int l=0;l<4;l++){
				ret=ys_1(a,b,c,d,szys[i],szys[j],szys[l]);
				if(ret-24<=0.000001&&ret-24>=-0.000001){
					int qq=yss(a,b,szys[i]),ww=yss(qq,c,szys[j]);
					if(a>=b){
						cout<<a<<szys[i]<<b<<"="<<qq<<endl;
					}else{
						cout<<b<<szys[i]<<a<<"="<<qq<<endl;
					}
					if(qq>=c){
						cout<<qq<<szys[j]<<c<<"="<<ww<<endl;
					}else{
						cout<<c<<szys[j]<<qq<<"="<<ww<<endl;
					}
					if(ww>=d){
						cout<<ww<<szys[l]<<d<<"=24";
					}else{
						cout<<d<<szys[l]<<ww<<"=24";
					}
					return 0;
				}
				ret=ys_2(a,b,c,d,szys[i],szys[j],szys[l]);
				if(ret-24<=0.000001&&ret-24>=-0.000001){
					int qq=yss(b,c,szys[j]),ww=yss(a,qq,szys[i]);
					if(b>=c){
						cout<<b<<szys[j]<<c<<"="<<qq<<endl;
					}else{
						cout<<c<<szys[j]<<b<<"="<<qq<<endl;
					}
					if(a>=qq){
						cout<<a<<szys[i]<<qq<<"="<<ww<<endl;
					}else{
						cout<<qq<<szys[i]<<a<<"="<<ww<<endl;
					}
					if(ww>=d){
						cout<<ww<<szys[l]<<d<<"=24";
					}else{
						cout<<d<<szys[l]<<ww<<"=24";
					}
					return 0;
				}
				ret=ys_3(a,b,c,d,szys[i],szys[j],szys[l]);
				if(ret-2<=0.000001&&ret-24>=-0.000001){
					int qq=yss(b,c,szys[j]),ww=yss(qq,d,szys[l]);
					if(b>=c){
						cout<<b<<szys[j]<<c<<"="<<qq<<endl;
					}else{
						cout<<c<<szys[j]<<b<<"="<<qq<<endl;
					}
					if(qq>=d){
						cout<<qq<<szys[l]<<d<<"="<<ww<<endl;
					}else{
						cout<<d<<szys[l]<<qq<<"="<<ww<<endl;
					}
					if(a>=ww){
						cout<<a<<szys[i]<<ww<<"=24";
					}else{
						cout<<ww<<szys[i]<<a<<"=24";
					}
					return 0;
				}
				ret=ys_4(a,b,c,d,szys[i],szys[j],szys[l]);
				if(ret-24<=0.000001&&ret-24>=-0.000001){
					int qq=yss(c,d,szys[l]),ww=yss(b,qq,szys[j]);
					if(c>=d){
						cout<<c<<szys[l]<<d<<"="<<qq<<endl;
					}else{
						cout<<d<<szys[l]<<c<<"="<<qq<<endl;
					}
					if(b>=qq){
						cout<<b<<szys[j]<<qq<<"="<<ww<<endl;
					}else{
						cout<<qq<<szys[j]<<b<<"="<<ww<<endl;
					}
					if(a>=ww){
						cout<<a<<szys[i]<<ww<<"=24";
					}else{
						cout<<ww<<szys[i]<<a<<"=24";
					}
					return 0;
				}
				ret=ys_5(a,b,c,d,szys[i],szys[j],szys[l]);
				if(ret-24<=0.000001&&ret-24>=-0.000001){
					int qq=yss(a,b,szys[i]),ww=yss(c,d,szys[d]);
					if(a>=b){
						cout<<a<<szys[i]<<b<<"="<<qq<<endl;
					}else{
						cout<<b<<szys[i]<<a<<"="<<qq<<endl;
					}
					if(c>=d){
						cout<<c<<szys[l]<<d<<"="<<ww<<endl;
					}else{
						cout<<d<<szys[l]<<c<<"="<<ww<<endl;
					}
					if(qq>=ww){
						cout<<qq<<szys[j]<<ww<<"=24";
					}else{
						cout<<ww<<szys[j]<<qq<<"=24";
					}
					return 0;
				}
			}
		}
	}
	cout<<"No answer!";
	return 0;
}
2024/8/30 14:21
加载中...