Submission #1245609

#TimeUsernameProblemLanguageResultExecution timeMemory
1245609nqknhtIce Hockey World Championship (CEOI15_bobek)C++20
10 / 100
153 ms8624 KiB
#include <bits/stdc++.h>

#define ll long long
#define fi first
#define se second
#define len(s) (ll) s.size()

const ll I = 2e5 + 9;
const ll Z = 998244353;

using namespace std;

vector<ll> box;
ll n, m, a[I], rs = 0;

int main()
{
    cin.tie(0)->sync_with_stdio(0);
    cin >> n >> m;
    for (int i = 1; i <= n; i++)
        cin >> a[i];
    int mid = n / 2;
    for (int bit = 0; bit < (1 << (n - mid)); bit++)
    {
        ll sum = 0;
        for (int id = 0; id < (n - mid); id++)
        {
            if (bit & (1 << id))
                sum += a[id + mid + 1];
        }
        box.push_back(sum);
    }
    for (int bit = 0; bit < (1 << mid); bit++)
    {
        ll sum = 0;
        for (int id = 0; id < mid; id++)
        {
            if (bit & (1 << id))
                sum += a[id + 1];
        }
        rs += upper_bound(box.begin(), box.end(), m - sum) - box.begin();
    }
    cout << rs;
    return 0;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...