#include<stdio.h>

int n,w,g[21],A,B,C,ans=987654321;

bool dt[2][834][834];


void fill_dt() {

dt[0][0][0]=true;

for(int i=1;i<=n;i++)

for(int b=0;b<=834;b++)

for(int c=0;c<=834;c++)

dt[i%2][b][c]=(dt[(i-1)%2][b][c] ||

(b-g[i]<0?false:dt[(i-1)%2][b-g[i]][c]) ||

(c-g[i]<0?false:dt[(i-1)%2][b][c-g[i]]));

}

void solve() {

for(int b=0;b<=834;b++)

for(int c=0;c<=834;c++)

if(dt[n%2][b][c]) {

int a=w-(b+c);

if(a>=b && b>=c && a-c<=ans) {

ans=a-c;

A=a; B=b; C=c;

}

}

}

int main() {

scanf("%d",&n);

for(int i=1;i<=n;i++) {

scanf("%d",g+i);

w+=g[i];

}

fill_dt();

solve();

printf("%d",C);

}

어디가 틀린거일까요..