Submission #1033468

#TimeUsernameProblemLanguageResultExecution timeMemory
1033468Maite_MoralePacking Biscuits (IOI20_biscuits)C++14
65 / 100
10 ms1212 KiB
#include <bits/stdc++.h> using namespace std; long long count_tastiness(long long x, std::vector<long long> a) { long long c=0,c1=0;long long d=0; std::vector<long long> t={1},v={0}; for(long long i=0;i<63;i++){ if(i<a.size())c1+=(a[i]<<i); c=c1/x; t.push_back(t.back()); long long h=c-(1LL<<i); long long r=0; while(h>=0){ long long lg=0; if(h>0)lg=log2(h)+1LL; lg=min(lg,i); if(h>=v[lg]){ r+=t[lg]; break; } r+=t[lg-1]; h-=(1LL<<(lg-1)); } t[i+1]+=r; if(r>=0)d+=(1LL<<i); v.push_back(min(d,c)); } return t[63]; }

Compilation message (stderr)

biscuits.cpp: In function 'long long int count_tastiness(long long int, std::vector<long long int>)':
biscuits.cpp:8:7: warning: comparison of integer expressions of different signedness: 'long long int' and 'std::vector<long long int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
    8 |   if(i<a.size())c1+=(a[i]<<i);
      |      ~^~~~~~~~~
#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...