![]() |
#2
xianfajushi2022-01-23 11:00
|
输入:3 200 300 110;
输出:310 300
我的代码是这样的,感觉并不是很好,并且测试不是完全通过。

#include<iostream>
#include <algorithm>
using namespace std;
int jue(int a){
if(a<0){
return -a;
}
else{
return a;
}
}
bool cmp(int a, int b){
return a>b;
}
int main(){
int n=0,a[10],sum_k=0,sum[100000],temp=0,temp_lop=1;
cin>>n;
for(int i=0;i<n;i++){
cin>>a[i];
sum_k=sum_k+a[i];
}
int summ=sum_k;
sum_k=sum_k/2;
for(int i=0;i<n;i++){
sum[temp]=a[i];
temp++;
for(int j=i+1;j<n;j++){
sum[temp]=a[i]+a[j];
temp++;
for(int p=j+1;p<n;p++){
sum[temp]=a[i]+a[j]+a[p];
//cout<<"here";
temp++;
}
}
}
//cout<<temp;
int minnum=jue(sum_k-sum[0]),ans=sum_k-sum[0];
for(int i=1;i<temp;i++){
if(jue(sum_k-sum[i])<minnum){
minnum=jue(sum_k-sum[i]);
ans=sum_k-sum[i];
}
}
int ans_ar[2];
ans_ar[0]=sum_k+ans;
ans_ar[1]=summ-sum_k-ans;
sort(ans_ar,ans_ar+2,cmp);
//cout<<sum_k+ans<<" "<<summ-sum_k-ans<<endl;
cout<<ans_ar[0]<<" "<<ans_ar[1]<<endl;
}