Submission #1313688

#TimeUsernameProblemLanguageResultExecution timeMemory
1313688tsetsenbilegRice Hub (IOI11_ricehub)C++20
100 / 100
8 ms2360 KiB
#include "ricehub.h"
#include <bits/stdc++.h>
using namespace std;
using ll = long long;
using pr = pair<int, int>;
// #define pb push_back()
const int INF = 1e9+7;
int n;
ll k;
vector<ll> pref, aa;

ll comp(int i, int l, int r) {
  ll lc = i - l, rc = r - i;
  return (aa[i]) * lc - (pref[i-1] - pref[l-1]) - (aa[i]) * rc + (pref[r] - pref[i]);
}

int besthub(int R, int L, int a[], long long B) {
  n = R; k = B;
  aa.resize(n+1);
  for (int i = 0; i < n; i++) aa[i+1] = a[i];
 
  int res = 0;
  ll sum = 0;
  pref.resize(n+1, 0);
  for (int i = 1; i <= n; i++) pref[i] = pref[i-1] + aa[i];
  int l;
  l = 1;;
  for (int r = 1; r <= n; r++) {
    while (comp((r+l)/2, l, r) > k) {
      l++;
    }
    res = max(res, r - l + 1);
  }
  // cout << l << ' ' << r << ' ';
  // for (int i = l; i <= r; i++) cout << aa[i] << ' ';
  // for (auto i : lef) cout << i << ' ';
  // for (auto i : rig) cout << i << ' ';
  return res;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...