#include <bits/stdc++.h>
using namespace std;
void setup()
{
ios_base::sync_with_stdio(0);
cin.tie(0);
cout.tie(0);
}
int n;
long long m, c[40], sum;
vector<long long> a, b;
int main()
{
setup();
cin >> n >> m;
for (int i = 0; i < n; ++i)
{
cin >> c[i];
}
for (int i = 0; i < (1 << (n / 2)); ++i)
{
sum = 0;
for (int j = 0; j < n / 2; ++j)
{
sum += c[j] * ((i & (1 << j)) > 0);
}
a.push_back(sum);
}
for (int i = 0; i < (1 << (n - n / 2)); ++i)
{
sum = 0;
for (int j = 0; j < n - n / 2; ++j)
{
sum += c[n / 2 + j] * ((i & (1 << j)) > 0);
}
b.push_back(sum);
}
sort(a.begin(), a.end());
sort(b.begin(), b.end());
sum = 0;
for (int i = 0, j = b.size() - 1; i < a.size(); ++i)
{
while (0 <= j && a[i] + b[j] > m)
{
j--;
}
sum += j + 1;
}
cout << sum;
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... |