#include #include #include #include #include #include #include #include #include #include using namespace std; typedef long long ll; const ll INF=1LL<<60; typedef pair P; typedef pair PP; const ll MOD=1e9+7; int main(){ int N; ll K; cin>>N>>K; vector A(N); for(int i=0;i>A[i]; } int n=N/2; vector arrayC,arrayD; for(int S=0;S<(1<>i)&1){ sum+=A[i]; } } arrayC.push_back(sum); } for(int S=0;S<(1<<(N-n));S++){ ll sum=0; for(int i=0;i<(N-n);i++){ if((S>>i)&1){ sum+=A[i+n]; } } arrayD.push_back(sum); } //arrayD.push_back(0); sort(arrayD.begin(),arrayD.end()); reverse(arrayD.begin(),arrayD.end());//大きいほうから取り出す typedef tuple TP; priority_queue,greater> pq; for(int i=0;i