#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
#include<cmath>
using namespace std;
int l[50],tot;
bool dp[1601][1601];
bool c(int x,int y,int z){
if((x+y)>z&&(y+z)>x&&(x+z)>y)
return true;
else return false;
}
double h(double x,double y,double z){
double p;
p=(x+y+z)/2;
return sqrt(p*(p-x)*(p-y)*(p-z));
}
int main(){
memset(dp,0,sizeof(dp));
int n;
cin>>n;
for(int i=1;i<=n;i++){
scanf("%d",&l[i]);
tot+=l[i];
}
dp[0][0]=1;
for(int i=1;i<=n;i++){
for(int j=tot/2;j>=0;j--){
for(int k=
#include<cstdio>
#include<cstring>
#include<algorithm>
#include<cmath>
using namespace std;
int l[50],tot;
bool dp[1601][1601];
bool c(int x,int y,int z){
if((x+y)>z&&(y+z)>x&&(x+z)>y)
return true;
else return false;
}
double h(double x,double y,double z){
double p;
p=(x+y+z)/2;
return sqrt(p*(p-x)*(p-y)*(p-z));
}
int main(){
memset(dp,0,sizeof(dp));
int n;
cin>>n;
for(int i=1;i<=n;i++){
scanf("%d",&l[i]);
tot+=l[i];
}
dp[0][0]=1;
for(int i=1;i<=n;i++){
for(int j=tot/2;j>=0;j--){
for(int k=