Submission #359272

#TimeUsernameProblemLanguageResultExecution timeMemory
359272Pety쌀 창고 (IOI11_ricehub)C++14
100 / 100
30 ms2924 KiB
#include <bits/stdc++.h>
//#include "ricehub.h"


using namespace std;

vector<int> v;
vector<long long> sum;

long long cost (int l, int r) {
  l++;r++;
  int mij = (l + r) / 2;
  return (1ll * v[mij] * (mij - l + 1) - (sum[mij] - sum[l - 1]) + (sum[r] - sum[mij - 1]) - 1ll * (r - mij + 1) * v[mij]);
}

int besthub (int n, int l, int x[], long long b) {
  sum.resize(n + 2);
  v.resize(n + 2);
  for (int i = 0; i < n; i++) {
    sum[i + 1] = sum[i] + x[i] ;
    v[i + 1] = x[i];
  }
  int sol = 0;
  for (int i = 0; i < n; i++) {
    int st = i, dr = n - 1, ans = 0;
    while (st <= dr) {
      int mij = (st + dr) / 2;
      if (cost(i, mij) <= b) {
        ans = mij;
        st = mij + 1;
      }
      else
        dr = mij - 1;
    }
    sol = max(sol, ans - i + 1);
  }
  return sol;
}


#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...