Submission #1218640

#TimeUsernameProblemLanguageResultExecution timeMemory
1218640takoshanavaIce Hockey World Championship (CEOI15_bobek)C++20
100 / 100
351 ms8776 KiB
#include <bits/stdc++.h> #define int long long #define pb push_back #define fs first #define sc second using namespace std; signed main(){ ios::sync_with_stdio(0); cin.tie(0); cout.tie(0); int n, m; cin >> n >> m; int a[n]; for(int i = 0; i < n; i++) cin >> a[i]; int n1 = n/2, n2 = n - n/2; vector<int> sums1; for(int mask = 0; mask < (1 << n1); mask++){ int s = 0; for(int i = 0; i < n1; i++){ if (mask & (1 << i)) s += a[i]; } if (s <= m) sums1.pb(s); } sort(sums1.begin(), sums1.end()); int ans = 0; for(int mask = 0; mask < (1 << n2); mask++){ int s2 = 0; for(int i = 0; i < n2; i++){ if (mask & (1 << i)) s2 += a[n1 + i]; } if (s2 > m) continue; int rem = m - s2; int cnt = upper_bound(sums1.begin(), sums1.end(), rem) - sums1.begin(); ans += cnt; } cout << ans << endl; }
#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...