rt,WA on #5,#6,#7
#include<bits/stdc++.h>
using namespace std;
int arr[55];
int dp[53][500005];
int main() {
int n;
cin>>n;
int sum=0;
for(int i=1;i<=n;++i) {
cin>>arr[i];
sum+=arr[i];
}
for(int i=1;i<=n;++i)
fill(dp[i],dp[i]+sum+1,-1);
dp[1][arr[1]]=0;
dp[1][0]=0;
for(int i=2;i<=n;++i) {
for(int j=0;j<=sum;++j) {
if(dp[i-1][j]==-1)continue;
dp[i][j]=max(dp[i][j],dp[i-1][j]);
if(dp[i-1][j]+arr[i]>j) {
dp[i][dp[i-1][j]+arr[i]]=max(dp[i][dp[i-1][j]+arr[i]],j);
}
else {
dp[i][j]=max(dp[i][j],dp[i-1][j]+arr[i]);
}
if(j+arr[i]<sum)dp[i][j+arr[i]]=max(dp[i][j+arr[i]],dp[i-1][j]);
}
}
// for(int i=1;i<=n;++i) {
// for(int j=1;j<=sum;++j) {
// cout<<dp[i][j]<<" \n"[j==sum];
// }
// }
int ans=0;
for(int i=1;i<=sum;++i) {
if(dp[n][i]==i) ans=i;
}
cout<<ans-(ans==0);
return 0;
}