哪位大佬耐心帮帮我
查看原帖
哪位大佬耐心帮帮我
693931
caitou007楼主2022/3/19 17:00

跑样例可以过,但全wa了,也没例子看是什么问题,哪位大佬帮帮我

#include<bits/stdc++.h>
using namespace std;
int A[22],B[22],C[22],D[22];
double sum=0;
int s1,s2,s3,s4;
double sum1,sum2,sum3,sum4,sum11,sum22,sum33,sum44;
int main(){
	cin>>s1>>s2>>s3>>s4;
	for(int i=1;i<=s1;i++){
		cin>>A[i];
		sum1+=A[i]; 
	}
	for(int i=1;i<=s2;i++){
		cin>>B[i];
		sum2+=B[i]; 
	}
	for(int i=1;i<=s3;i++){
		cin>>C[i];
		sum3+=C[i]; 
	}
	for(int i=1;i<=s4;i++){
		cin>>D[i];
		sum4+=D[i]; 
	}
	for(int i=1;i<=s1;i++){
		sort(A+1,A+s1+1);
		if(s1<=1){
			sum11+=A[i];
			continue;
		}
		else if(s1==2){
			sum11+=A[2];
			continue;
		}
		else{
				if(s1%2==1){
			for(int i=1;i<=s1;i++){
				if(sum11>=sum1/2){
					continue;
				}
				sum11+=A[i];
			}
		  }
		       else{
		  	for(int i=1,j=s1;i<=j;i++,j--){
		  		if(A[i]+A[j]>=sum1/2){
		  			break;
				  }
				  sum11+=A[i]+A[j];
			  }
		  }
	}
	}
	for(int i=1;i<=s2;i++){
		sort(B+1,B+s2+1);		
		if(s2<=1){
			sum22+=B[i];
			break;
		}	
		else if(s2==2){
			sum22+=B[2];
			break;
		}	
		else{
			if(s2%2==1){
			for(int i=1;i<=s2;i++){
				if(sum22>=sum2/2){
					continue;
				}
				sum22+=B[i];
			}
		  }
		  else{
		  	for(int i=1,j=s2;i<=j;i++,j--){
		  		if(B[i]+B[j]>=sum2/2){
		  			break;
				  }
				  sum22+=B[i]+B[j];
			  }
		  }
		}
	}
	for(int i=1;i<=s3;i++){
		sort(C+1,C+s3+1);		
		if(s3<=1){
			sum33+=C[i];
			break;
		}
		else if(s3==2){
			sum33+=C[2];
			break;
		}		
		else{
				if(s3%2==1){
			for(int i=1;i<=s3;i++){
				if(sum33>=sum3/2){
					continue;
				}
				sum33+=C[i];
			}
		  }
		  else{
		  	for(int i=1,j=s3;i<=j;i++,j--){
		  		if(C[i]+C[j]>=sum3/2){
		  			break;
				  }
				  sum33+=C[i]+C[j];
			  }
		  }
	}
	}
	for(int i=1;i<=s4;i++){
		sort(D+1,D+s4+1);		
		if(s4<=1){
			sum44+=D[i];
			break;
		}
		else if(s4==2){
			sum44+=D[2];
			break;
		}
		else{
				if(s4%2==1){
			for(int i=1;i<=s4;i++){
				if(sum44>=sum4/2){
					continue;
				}
				sum44+=D[i];
			}
		  }
		  else{
		  	for(int i=1,j=s4;i<=j;i++,j--){
		  		if(D[i]+D[j]>=sum4/2){
		  			break;
				  }
				  sum44+=D[i]+D[j];
			  }
		  }
	}
	}
	//cout<<sum11<<endl;
//	cout<<sum22<<endl;
	//cout<<sum33<<endl;
//	cout<<sum44<<endl;
	sum=sum11+sum22+sum33+sum44;
	cout<<sum;
}
2022/3/19 17:00
加载中...