Submission #867261

#TimeUsernameProblemLanguageResultExecution timeMemory
867261UmairAhmadMirzaIce Hockey World Championship (CEOI15_bobek)C++14
40 / 100
233 ms8940 KiB
//In the name of Allah the most beneficent, the most merciful. #include <bits/stdc++.h> using namespace std; // #pragma GCC optimize("Ofast,unroll-loops") // #pragma GCC target("avx,avx2,avx512,fma") #define int long long #define ar array #define ll long long #define ld long double #define sza(x) ((int)x.size()) #define all(a) (a).begin(), (a).end() #define PI 3.1415926535897932384626433832795l const int N = 42; const ll MOD = 1e9 + 7; const ll INF = 1e9; const ld EPS = 1e-9; // -------------------------<RNG>------------------------- // RANDOM NUMBER GENERATOR mt19937 RNG(chrono::steady_clock::now().time_since_epoch().count()); #define SHUF(v) shuffle(all(v), RNG); // Use mt19937_64 for 64 bit random numbers. //-------------------------------------------------------- //int defined as long long int arr[N]; int n,m; int hn; vector<int> lft; int sm_left(int val){ int sm=0; for(int i=0;i<(n/2);i++) if((1<<i)&(val)) sm+=arr[i]; return sm; } int cnt(int val){ val=val<<(n/2); int sm=0; for(int i=n/2;i<n;i++) if((1<<i)&(val)) sm+=arr[i]; auto p=upper_bound(lft.begin(),lft.end(),m-sm); return p-lft.begin(); } void solve() { //int defined as long long cin>>n>>m; for(int i=0;i<n;i++) cin>>arr[i]; sort(arr,arr+n); int val=0; while(val<(1<<(n/2))){ lft.push_back(sm_left(val)); val++; } sort(lft.begin(),lft.end()); val=0; int ans=0; hn=(n/2)+(n%2); while(val<(1<<hn)){ ans+=cnt(val); val++; } cout<<ans<<endl; } signed main() { ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0); // freopen("billboard.in", "r", stdin); // freopen("billboard.out", "w", stdout); int tc = 1; // cin >> tc; for (int t = 1; t <= tc; t++) { // cout << "Case #" << t << ": "; solve(); } }
#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...