제출 #1363992

#제출 시각아이디문제언어결과실행 시간메모리
1363992TraianDanciu쌀 창고 (IOI11_ricehub)C++20
100 / 100
6 ms1568 KiB
#include "ricehub.h"

using namespace std;

const int MAXN = 100000;

long long sp[MAXN + 1];

int besthub(int n, int lim, int x[], long long b) {
  for(int i = 0; i < n; i++) {
    sp[i + 1] = sp[i] + x[i];
  }

  int st = 1, dr = n, answer = 0;
  while(st <= dr) {
    int mij = (st + dr) / 2, ok = 0;
    for(int i = 1; i + mij - 1 <= n; i++) {
      int median = i + mij / 2;
      long long sum = 1LL * x[median - 1] * (median - i) - (sp[median - 1] - sp[i - 1]);
      sum += (sp[i + mij - 1] - sp[median]) - 1LL * x[median - 1] * (i + mij - 1 - median);
      if(sum <= b) {
        ok = 1;
      }
    }
    if(ok) {
      answer = mij;
      st = mij + 1;
    } else {
      dr = mij - 1;
    }
  }
  return answer;
}
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…