rt.
T了最后一个点。
#include<bits/stdc++.h>
#define fi first
#define se second
#define pii pair<int,int>
#define pll pair<ll,ll>
#define yes "Yes"
#define no "No"
#define debug(x) cout<<#x<<" = "<<x<<"\n"
#define rep(i,x,y) for(int i=x;i<=(y);++i)
#define per(i,x,y) for(int i=x;i>=(y);--i)
typedef long long ll;
typedef unsigned long long ull;
using namespace std;
const int INF=0x3f3f3f3f;
const ll LNF=0x3f3f3f3f3f3f3f3f;
const int N=70;
int n;
int a[N],cnt,sum,maxx,d;
bool vis[N];
void dfs(int s,int k,int st){
if(s==0){
dfs(d,k-1,1);
return;
}
if(k==0){
cout<<d;
exit(0);
}
rep(i,st,cnt){
if(!vis[i]&&a[i]<=s){
vis[i]=1;
dfs(s-a[i],k,i+1);
vis[i]=0;
while(i+1<=cnt&&a[i+1]==a[i]) i++;
if(s==d||s==a[i]) break;
}
}
}
void solve(){
cin>>n;
rep(i,1,n){
int x;
cin>>x;
if(x<=50){
a[++cnt]=x;
sum+=x;
}
}
sort(a+1,a+cnt+1,greater<int>());
for(d=a[1];(d<<1)<=sum;d++){
if(sum%d==0){
dfs(d,sum/d,1);
}
}
cout<<sum;
}
int main(){
int t=1;
while(t--){
solve();
}
return 0;
}