Submission #1207675

#TimeUsernameProblemLanguageResultExecution timeMemory
1207675simona1230Packing Biscuits (IOI20_biscuits)C++20
12 / 100
1 ms396 KiB
#include "biscuits.h" #include <bits/stdc++.h> using namespace std; long long p[64]; long long ans,nd,b[64]; long long s[64]; vector<long long> v; long long count_tastiness(long long x, std::vector<long long> a) { p[0]=1; for(int i=1; i<60; i++) p[i]=p[i-1]*2; while(a.size()<60)a.push_back(0); if(1) { for(int i=0;i<a.size();i++) { if(a[i]>=x) { long long lf=a[i]-x; a[i]=x+lf%(2*x); a[i+1]+=lf/(2*x); } } ans=1; long long curr=1,cnt=0; for(int i=0;i<a.size();i++) { //cout<<a[i]<<" "; if(a[i]==0) { ans*=curr; curr=1; cnt=0; } else { curr+=p[cnt]*a[i]; cnt++; } } //cout<<endl; ans*=curr; return ans; } s[0]=a[0]; for(int i=1; i<60; i++) { s[i]=s[i-1]; if(i<a.size())s[i]+=a[i]*p[i]; } nd=x; ans=0; v.clear(); v.push_back(0); for(int i=0;i<60;i++) { int sz=v.size(); int j=0; while(j<sz&&(v[j]+p[i])<=s[i]/nd) { v.push_back(v[j]+p[i]); j++; } } //cout<<"? "<<v.size()<<endl; return v.size(); }
#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...