TLE 70 求调
查看原帖
TLE 70 求调
1246040
_Star_Universe_楼主2024/7/4 21:59

rt,代码:

#include<bits/stdc++.h>
using namespace std;

int a[66],c[66],len,l,r,n,cnt;
bool f(int s,int k){
	if(k>cnt){
		return false;
	}
	if(s>n){
		if(cnt==k){
			for(int i=1;i<=k;i++){
				if(c[i]!=len){
					return false;
				}
			}
			return true;
		}
		return false;
	}
	for(int i=1;i<=k;i++){
		if(c[i]+a[s]<=len){
			c[i]+=a[s];
			if(f(s+1,k)==true) return true;
			c[i]-=a[s];
		}
	}
	c[k+1]=a[s];
	if(f(s+1,k+1)==true) return true;
	c[k+1]=0;
	return false;
}

bool cmp(int x,int y){
	return x>y;
}

int main(){
	cin>>n;
	for(int i=1;i<=n;i++){
		cin>>a[i];
		l=max(l,a[i]);
		r+=a[i];
	}
	sort(a+1,a+n+1,cmp);
	for(len=l;len<=r/2;len++){
		if(r%len==0){
			cnt=r/len;
			if(f(1,0)==true){
				cout<<len;
				return 0;
			}
		}
	}
	cout<<r;
	return 0;
}
2024/7/4 21:59
加载中...