#include<bits/stdc++.h>
#define ll long long
#define all(x) (x).begin(),(x).end()
#define cmax(x,y) x=max(x,y)
#define cmin(x,y) x=min(x,y)
#define add(x,y) x=(x+y)%mod
#define endl '\n'
#define re register
using namespace std;
const int mod=1e9+7;
const int inf=0x3f3f3f3f;
int min1;
int n,sum,p;
vector<int>a(70),w(4);
bool f=0;
void dfs(int d){
if(f) return;
if(d==n){
f=1;
cout<<p;
return;
}
for (re int i=0;i<4;i++){
if(a[d]<=w[i]){
w[i]-=a[d];
dfs(d+1);
w[i]+=a[d];
}
}
}
signed main(){
cin>>n;
for (re int i=0;i<n;i++){
cin>>a[i];
sum+=a[i];
}
sort(all(a),greater<int>());
for (re int i=sum;i>0;i--){
if((sum%i)==0&&(sum/i)>=a[0]){
f=0;
p=sum/i;
fill(all(w),p);
dfs(0);
if(f) return 0;
}
}
return 0;
}
感觉大致思路没错,但是又WA又T