Submission #262670

#TimeUsernameProblemLanguageResultExecution timeMemory
262670anubhavdharIce Hockey World Championship (CEOI15_bobek)C++14
100 / 100
583 ms8896 KiB
#include<bits/stdc++.h> #define ll long long #define pb push_back #define mp make_pair #define pii pair<int, int> #define pll pair<ll, ll> #define ff first #define ss second #define vi vector<int> #define vl vector<ll> #define vii vector<pii> #define vll vector<pll> #define FOR(i,N) for(i=0;i<(N);++i) #define FORe(i,N) for(i=1;i<=(N);++i) #define FORr(i,a,b) for(i=(a);i<(b);++i) #define FORrev(i,N) for(i=(N);i>=0;--i) #define F0R(i,N) for(int i=0;i<(N);++i) #define F0Re(i,N) for(int i=1;i<=(N);++i) #define F0Rr(i,a,b) for(ll i=(a);i<(b);++i) #define F0Rrev(i,N) for(int i=(N);i>=0;--i) #define all(v) (v).begin(),(v).end() #define dbgLine cerr<<" LINE : "<<__LINE__<<"\n" #define ldd long double using namespace std; const int Alp = 26; const int __PRECISION = 9; const int inf = 1e9 + 8; const ldd PI = acos(-1); const ldd EPS = 1e-7; const ll MOD = 1e9 + 7; const ll MAXN = 2e5 + 5; const ll ROOTN = 320; const ll LOGN = 18; const ll INF = 1e18 + 1022; int N; ll ans, M, A[41]; vl V; ll search(ll cost) { if(cost > M) return 0; int mid, lo = 0, hi = V.size(); while(hi > lo + 1) { mid = (lo + hi)/2; if(V[mid] <= M - cost) lo = mid; else hi = mid; } return hi; } inline void dbg() { for(ll pp : V) cerr<<pp<<' '; cerr<<'\n'; } signed main() { ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL); ll tmp = 0; ans = 0; cin>>N>>M; F0R(i, N) cin>>A[i]; F0R(mask, (1<<(N/2))) { tmp = 0; F0R(i, N/2) if((1<<i) & mask) tmp += A[i]; V.pb(tmp); } // dbg(); sort(all(V)); F0R(mask, (1<<(N - N/2))) { tmp = 0; F0R(i,N - N/2) if((1<<i) & mask) tmp += A[i + N/2]; ans += search(tmp); } cout<<ans<<'\n'; 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...