全部RE,求大佬帮忙
查看原帖
全部RE,求大佬帮忙
749743
e4fsrc2e4fsrc2楼主2022/8/6 22:47

代码如下:

#include<bits/stdc++.h>
#define int unsigned long long
using namespace std;
int n,a[66],b[51];
bool dfs(int s,int cnt,int l)
{
	if(cnt==n)return s==l;
	if(s==l)l=0;
	for(int i=50; i>=1; i--)
	{
        if((b[i]==0)||i>s-l)continue;
        else
		{
			b[i]--;
			if(dfs(s,cnt+1,l+i))return false;
			b[i]++;
		}
    }
}
signed main()
{
    int sum=0,minx=0;
    cin>>n;
    for(int i=1; i<=n; i++)
    {
        cin>>a[i];
        sum+=a[i];
        b[a[i]]++;
        if(minx<a[i])minx=a[i];
    }
    for(int i=minx; i<=sum; i++)
    	if(sum%i==0)if(dfs(i,0,0)		{cout<<i;return 0;}
}
2022/8/6 22:47
加载中...