Submission #299085

#TimeUsernameProblemLanguageResultExecution timeMemory
299085erd1Rice Hub (IOI11_ricehub)C++14
100 / 100
28 ms2936 KiB
#include "ricehub.h"

#include<bits/stdc++.h>
using namespace std;
#define ff first
#define ss second
#define all(x) (x).begin(), (x).end()
#define pb push_back
typedef int64_t lld;
typedef pair<int, int> pii;

vector<lld> v;

int besthub(int R, int L, int X[], long long B) {
  int l = 0, r = R+1;
  v.pb(0);
  for(int i = 0; i < R; i++)v.pb(X[i]+v.back());
  while(r-l > 1){
    int d = (l+r)/2; bool fl = false;
    for(int i = 0; i+d-1 < R; i++){
      int med = X[i+d/2];
      lld dist = (v[i+d]-v[i+d/2])-(lld)med*(d-(d/2)) + (lld)med*(d/2)-(v[i+d/2]-v[i]);
      //cout << i << " " << i+d-1 << " " << dist << endl;
      if(dist <= B)fl = true;
    }
    if(fl)l = d;
    else r = d;
  }
  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...