Submission #1064861

#TimeUsernameProblemLanguageResultExecution timeMemory
1064861new_accPacking Biscuits (IOI20_biscuits)C++14
100 / 100
48 ms1464 KiB
#include "biscuits.h" #include<bits/stdc++.h> #define fi first #define se second using namespace std; typedef long long ll; typedef vector<int> vi; typedef vector<ll> vl; const int N=1e6+10; ll pot[N],s[N],n; ll ob(ll x){ if(x==0) return 0; if(x==1) return 1; int g=0; for(int i=59;i>=0;i--){ if((1LL<<i)<x){ g=i; break; } } ll res=pot[g]; ll xd=min(x,s[g]/n+1)-(1LL<<g); if(xd>=0) res+=ob(xd); return res; } ll count_tastiness(ll x,vl a){ n=x; while(a.size()<60) a.push_back(0); ll curr=0; for(int i=0;i<60;i++){ curr+=(1LL<<i)*a[i]; s[i]=curr; } pot[0]=1; for(int i=1;i<=60;i++){ pot[i]=ob(1LL<<i); } return pot[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...