#include #include #include using namespace std; struct d{ int teka; int val; }; d dp[18][1<<16]; //dp[i番目][それまでに買った集合] int main(){ int n;cin>>n; vector A(n); for(int i = 0; n > i; i++){ cin>>A[i]; } for(int i = 0; n >= i; i++){ for(int j = 0; (1<= j; j++){ dp[i][j].teka = -1; dp[i][j].val = -1; } } dp[0][0].teka = 0; dp[0][0].val = 0; for(int i = 0; n > i; i++){ for(int j = 0; (1< j; j++){ if(dp[i][j].val == -1)continue; for(int k = 0; n > k; k++){ if(j & (1<= i; i++){ // for(int j = 0; (1<= j; j++){ // cout << dp[i][j].val << " "; // } // cout << endl; // } // for(int i = 0; n >= i; i++){ // for(int j = 0; (1<= j; j++){ // cout << dp[i][j].teka << " "; // } // cout << endl; // } cout << dp[n][(1<