#include <bits/stdc++.h>
#define endl '\n'
using namespace std;
const int n = 44;
int a,b;
long long c,d,e[n];
vector < long long > f;
void g(int h, long long i) {
if(h>b) {
f.push_back(i);
return;
}
g(h+1,i);
g(h+1,i+e[h]);
}
void j(int k, long long l) {
if(k>a) {
c+=(int)(upper_bound(f.begin(),f.end(),d-l)-f.begin());
return;
}
j(k+1,l);
j(k+1,l+e[k]);
}
int main() {
ios_base::sync_with_stdio(false);
cin.tie(NULL);
int m;
cin >> a >> d;
for(m=1;m<=a;m++) {
cin >> e[m];
}
b=a/2;
g(1,0);
sort(f.begin(),f.end());
j(b+1,0);
cout << c << endl;
return 0;
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |