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;
}