제출 #362253

#제출 시각아이디문제언어결과실행 시간메모리
362253WLZ쌀 창고 (IOI11_ricehub)C++14
100 / 100
15 ms1644 KiB
#include "ricehub.h"
#include <bits/stdc++.h>
using namespace std;

int r;
long long l, b;
vector<long long> x;

long long query(int a, int b) {
  if (a > 0) return x[b] - x[a - 1];
  return x[b];
}

bool check(int k) {
  for (int i = k - 1; i < r; i++) {
    long long cur = query(i - k / 2 + 1, i) - query(i - k + 1, i - (k + 1) / 2);
    if (cur <= b) return true;
  }
  return false;
}

int besthub(int R, int L, int X[], long long B) {
  r = R, l = L, b = B;
  x = vector<long long>(X, X + r);
  for (int i = 1; i < r; i++) x[i] += x[i - 1];
  if (!check(2)) return 1;
  int lo = 2, hi = r;
  while (lo < hi) {
    long long mid = (lo + hi + 1) / 2;
    if (check(mid)) lo = mid;
    else hi = mid - 1;
  }
  return lo;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...