제출 #690326

#제출 시각아이디문제언어결과실행 시간메모리
690326zeroesandones쌀 창고 (IOI11_ricehub)C++17
100 / 100
12 ms2528 KiB
#include "bits/stdc++.h"
#include "ricehub.h"
using namespace std;

using ll = long long;
using vi = vector<long long>;

#define pb emplace_back

int besthub(int R, int L, int X[], long long B)
{
  ll pref[R] = {};
  pref[0] = X[0];
  for(int i = 1; i < R; ++i) {
    pref[i] = pref[i - 1] + X[i];
  }

  auto check = [&](int mid) {
    for(int i = 0; i < R; ++i) {
      if(i + mid - 1 < R) {
        ll p = (i + mid / 2);
        ll sum = pref[p - 1] - (i == 0 ? 0 : pref[i - 1]);
        ll val = pref[i + mid - 1] - pref[p] - X[p] * (i + mid - 1 - p) + X[p] * (p - 1 - (i - 1)) - sum;
        if(val <= B)
          return true;
      }
    }

    return false;
  };

  ll l = 0, r = R + 1;
  while(l + 1 < r) {
    ll mid = (l + r) / 2;
    if(check(mid)) {
      l = mid;
    } else {
      r = mid;
    }
  }

  return l;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...