Submission #1295649

#TimeUsernameProblemLanguageResultExecution timeMemory
1295649al95ireyizIce Hockey World Championship (CEOI15_bobek)C++20
90 / 100
1101 ms124180 KiB
#include <bits/stdc++.h> #pragma GCC optimize("O2", "unroll-loops", "fast-math", "no-stack-protector") using namespace std; #define ll long long #define vll vector<ll> #define len(x) (ll)x.size() const ll INF = 1e9, INFL = 1e18; const ll MOD = 1e9 + 7; const ll maxn = 2e5 + 5; ll n, m, k = 0; void _() { // kasibligin uzu qara olsun ay Mahir cin >> n >> m; vll v, v2, t; for(ll i = 1, x; i <= n; i ++){ cin >> x; if(x > m) continue; t.push_back(x); } for(ll i = 0; i < len(t); i ++){ if(i <= len(t) / 2) v.push_back(t[i]); else v2.push_back(t[i]); } map<ll, ll>mp; ll le = len(v), le2 = len(v2), cv = 0; for(ll i = 0; i < (1ll << le); i ++){ ll cm = 0; for(ll j = 0; j < len(v); j ++){ if(i & (1ll << j)) cm += v[j]; if(cm > m) break; } if(cm > m) continue; mp[cm] ++; } vector<pair<ll, ll>>c; for(auto [x, y] : mp){ if(!c.empty()) y += c.back().second; c.push_back({x, y}); } for(ll i = 0; i < (1ll << le2); i ++){ ll cm = 0; for(ll j = 0; j < len(v2); j ++){ if(i & (1ll << j)) cm += v2[j]; if(cm > m) break; } if(cm > m) continue; ll l = 0, r = len(c) - 1, nw = 0; while(l <= r){ ll md = (l + r) >> 1; if(c[md].first + cm <= m){ l = md + 1; nw = c[md].second; } else{ r = md - 1; } } cv += nw; } cout << cv << '\n'; } signed main() { cin.tie(0)->sync_with_stdio(0); ll t = 1; // cin >> t; while(t --) _(); }
#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...