Submission #1284032

#TimeUsernameProblemLanguageResultExecution timeMemory
1284032faricaPacking Biscuits (IOI20_biscuits)C++20
0 / 100
1104 ms242296 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] >= (cur+(1LL<<i)) * x) {
		  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...