Submission #424092

#TimeUsernameProblemLanguageResultExecution timeMemory
424092ApiramPacking Biscuits (IOI20_biscuits)C++14
0 / 100
1093 ms332 KiB
#include "biscuits.h" #include<bits/stdc++.h> using namespace std; long long count_tastiness(long long x, std::vector<long long> a) { int64_t counts =1; /*int64_t covered = 0; for (int64_t i =0;i<n;++i){ int64_t temp = pow(2,i)*arr[i]; counts+=(covered - temp)/pow(2,i); covered = max(covered,temp); }*/ vector<int64_t>arr(60,0); int64_t sum=0; for (int64_t i =0;i<a.size();++i){arr[i]=a[i];sum+=1LL<<i;} for (int64_t i =1;i<60;++i){ if (arr[i-1]>x){ arr[i]+=( arr[i-1] - x )/2; arr[i-1] = x + arr[i-1]%2; } } for (int64_t i =1;i<=sum;++i){ int64_t temp =i; vector<bool>needed(60,false); int64_t minny=LLONG_MAX; for (int64_t j = 60 ; j>=0;--j){ if ((1LL<<j) <= temp){ temp-=(1LL<<j); needed[j]=true; } if (!temp)break; } int64_t ones = 0; bool ok=true; for (int64_t j =0;j<60;++j){ if (needed[j]){ if (arr[j]>=x)continue; if ((x-arr[j])*(1LL<<j) > ones){ ok=false;break; } else { ones-=(x-arr[j])*(1LL<<j); } } else { ones+=arr[j]<<j;} } counts+=ok; } return counts; }

Compilation message (stderr)

biscuits.cpp: In function 'long long int count_tastiness(long long int, std::vector<long long int>)':
biscuits.cpp:14:21: warning: comparison of integer expressions of different signedness: 'int64_t' {aka 'long int'} and 'std::vector<long long int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   14 |  for (int64_t i =0;i<a.size();++i){arr[i]=a[i];sum+=1LL<<i;}
      |                    ~^~~~~~~~~
biscuits.cpp:25:11: warning: unused variable 'minny' [-Wunused-variable]
   25 |   int64_t minny=LLONG_MAX;
      |           ^~~~~
#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...