Submission #795683

#TimeUsernameProblemLanguageResultExecution timeMemory
795683alexander707070Packing Biscuits (IOI20_biscuits)C++14
0 / 100
1055 ms340 KiB
#include<bits/stdc++.h> using namespace std; long long x,sum,curr; int k,pos; vector<long long> br,toadd; int brute(int bit,long long total){ if(total<0)cout<<1/0; if(bit==-1)return 1; int res=brute(bit-1,total-br[bit]*(1LL<<bit)); curr=x; pos=bit; if(total>=x*(1LL<<bit)){ total-=x*(1LL<<bit); for(int i=bit;i>=0;i--){ if(br[i]>=curr){ br[i]-=curr; toadd[i]=curr; curr=0; pos=i; break; }else{ curr-=br[i]; toadd[i]=br[i]; br[i]=0; curr*=2; } } res+=brute(bit-1,total-br[bit]*(1LL<<bit)); for(int i=bit;i>=pos;i--){ br[i]+=toadd[i]; toadd[i]=0; } } return res; } long long count_tastiness(long long X,vector<long long> A){ k=int(A.size()); x=X; sum=0; br.resize(k); toadd.resize(k); for(int i=0;i<k;i++){ br[i]=A[i]; sum+=br[i]*(1LL<<i); } return brute(k-1,sum); } /* int main(){ cout<<count_tastiness(2, {2, 1, 2})<<"\n"; } */

Compilation message (stderr)

biscuits.cpp: In function 'int brute(int, long long int)':
biscuits.cpp:9:23: warning: division by zero [-Wdiv-by-zero]
    9 |     if(total<0)cout<<1/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...