1 solutions

  • 0
    @ 2024-3-2 16:29:40
    #include<bits/stdc++.h>
    using namespace std;
    const int N=15;
    int a[N];
    int main()
    {
    	int n;
    	cin>>n;
    	int s=0;
    	for(int i=0;i<n;i++) //获取物资 
    	{
    		cin>>a[i];
    		s+=a[i];
    	}
    	int d=2e9;
    	int ans=0;	
    	for(int i=0;i<(1<<n);i++) //枚举所有的选择 
    	{
    		int x=0;
    		for(int j=0;j<n;j++)  
    		{
    			if(i>>j&1) //第j个物品在第一个区域 
    			{
    				x+=a[j];	
    			}	
    		}	
    		int t=s-x;
    		if(abs(t-x)<d)
    		{
    			d=abs(t-x);
    			ans=min(t,x);
    		}
    	} 
    	cout<<s-ans<<" "<<ans;
    	return 0;
    }
    
    • 1

    Information

    ID
    695
    Time
    1000ms
    Memory
    128MiB
    Difficulty
    5
    Tags
    # Submissions
    46
    Accepted
    17
    Uploaded By