#include #include #include char memo[3][500100]; int main(void){ int i,j,n; int v[1100]={0}; int mp = 2; int vmax=1; scanf("%d", &n); memo[0][0] = 1; memo[1][0] = 1; memo[2][0] = 1; for(i=1;i<=n;i++){ scanf("%d", &v[i]); for(j=vmax;j>=0;j--){ memo[mp][j] = memo[(mp+2)%3][j]; if(memo[(mp+1)%3][j] == 1){ memo[mp][j+v[i]] = 1; if(vmax < j+v[i]){ vmax = j+v[i]; } } } mp = (mp+1)%3; } printf("%d\n", vmax); return 0; }