Submission #1284033

#TimeUsernameProblemLanguageResultExecution timeMemory
1284033faricaPacking Biscuits (IOI20_biscuits)C++20
9 / 100
1103 ms212596 KiB
#include "biscuits.h"
#include <bits/stdc++.h>

using namespace std;
using ll = long long;

long long count_tastiness(long long x, std::vector<long long> a) {
  int n = (int)a.size();
  set<ll>S;
  vector<ll>s(61, 0);
  for(int i=0; i<61; ++i) {
    if(i < n) s[i] = (1LL<<i) * a[i];
    if(i) s[i] += s[i-1];
  }
  S.insert(0);
  for(int i=0; i<61; ++i) {
    auto it = S.end();
    --it;
    while(true) {
      ll cur = (*it);
      if((s[i]/x) >= (cur+(1LL<<i))) {
		  S.insert(cur + (1LL<<i));
      }
      if(it == S.begin()) break;
	  --it;
    }
  }
  
	return (ll)S.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...