题目描述
blablabla
样例
blablabla
算法1
C++ 代码
#include<bits/stdc++.h>
using namespace std;
const int N=1010;
int n;
int nums[N];
int sum[N];
int ans;
bool flag;
int dist=1e9;
void dfs(int u,int cur)
{
if(flag)return;
if(cur>sum[n]/2||sum[n]-2*(cur+sum[u])>dist)return ;
if(u==0)
{
int d=sum[n]-cur-cur;
if(d<dist)
{
dist=d;
ans=cur;
if(dist==1||dist==0)flag=true;
}
return ;
}
for(int i=u;i>=0;i--)dfs(i-1,cur+nums[i]);
}
int main()
{
n=1;
while(cin>>nums[n])n++;
n--;
sort(nums+1,nums+n+1);
for(int i=1;i<=n;i++)sum[i]=sum[i-1]+nums[i];
dfs(n,0);
if(sum[n]-ans>ans)cout<<sum[n]-ans<<" "<<ans<<endl;
else cout<<ans<<" "<<sum[n]-ans<<endl;
return 0;
}