悬关,求助,样例过了,3分。。。
  • 板块P1120 小木棍
  • 楼主Enoch006
  • 当前回复1
  • 已保存回复1
  • 发布时间2023/2/3 09:22
  • 上次更新2023/10/24 01:57:18
查看原帖
悬关,求助,样例过了,3分。。。
538683
Enoch006楼主2023/2/3 09:22

rt,只有三分qwq

#include <bits/stdc++.h>
using namespace std;
int n,a[10000000],b,vis[10000000],c,x,L,maxx,minn=0x3f3f3f3f,sum; 
int dfs(int cnt,int last,int len){
	if(cnt==n+1){
		cout<<L;
		exit(0);
	}
	else{
		for(int i=last;i>=minn;i--){
			if(i+len<=L&&a[i]){
				a[i]--;
				if(i+len==L)dfs(cnt+1,maxx,0);
				else dfs(cnt+1,i,i+len);
				a[i]++;
				if(i+len==L)break;
				if(len==0)break;
			}
		}
	}
}
int main() {
	cin>>n;
    for(int i=1;i<=n;i++){
    	cin>>x;
    	a[x]++;
    	maxx=max(maxx,x);
    	minn=min(minn,x);
    	sum+=x;
	}
	for(int i=minn;i<=sum;i++){
		if(sum%i==0){
			L=i;
			dfs(1,maxx,0);
		}
	}
    return 0;
}    
2023/2/3 09:22
加载中...