Submission #370082

#TimeUsernameProblemLanguageResultExecution timeMemory
370082MilosMilutinovicPacking Biscuits (IOI20_biscuits)C++14
0 / 100
1 ms364 KiB
#include "biscuits.h" #include <bits/stdc++.h> using namespace std; #define ll long long #define pb push_back const int N=62; ll x; map<ll, ll> dp; vector<ll> pref; ll Solve(ll n) { if(n<=0) return (ll)0; if(n==1) return (ll)1; if(dp.find(n)!=dp.end()) return dp[n]; ll i=__lg(n-1); ll ans=Solve((ll)(1<<i))+Solve(min(n,pref[i]/x+1)-(ll)(1<<i)); dp[n]=ans; return dp[n]; } ll count_tastiness(ll X, vector<ll> a) { x=X; dp.clear(); pref.clear(); for(ll i=0; i<(int)a.size(); ++i) { if(i>0) a[i]=a[i-1]+a[i]*(ll)(1<<i); pref.pb(a[i]); } for(int i=(int)a.size(); i<61; ++i) pref.pb(pref.back()); return Solve((ll)(1<<(ll)60)); }

Compilation message (stderr)

biscuits.cpp: In function 'long long int count_tastiness(long long int, std::vector<long long int>)':
biscuits.cpp:37:27: warning: left shift count >= width of type [-Wshift-count-overflow]
   37 |  return Solve((ll)(1<<(ll)60));
      |                           ^~
#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...