Submission #247654

#TimeUsernameProblemLanguageResultExecution timeMemory
247654davi_bartRice Hub (IOI11_ricehub)C++14
100 / 100
22 ms1792 KiB
#pragma GCC optimize("O3")
#include <bits/stdc++.h>
#include "ricehub.h"
using namespace std;
typedef long long ll;
//#define int ll
mt19937 rng(chrono::steady_clock::now().time_since_epoch().count());
int besthub(int R, int L, int X[], long long B){
  ll sx=0,dx=R+1;
  while(sx<dx-1){
    ll m=(sx+dx)/2;
    ll tot=0;
    ll mi=1e18;
    int pos=m/2;
    for(int i=0;i<m;i++){
      tot+=abs(X[i]-X[pos]);
    }
    mi=min(mi,tot);
    for(int i=m;i<R;i++){
      pos++;
      tot-=(ll)X[pos-1]-(ll)X[i-m];
      tot+=(ll)(m)/2*((ll)X[pos]-X[pos-1]);
      tot-=(ll)(m-1)/2*((ll)X[pos]-X[pos-1]);
      tot+=(ll)X[i]-X[pos];
      mi=min(mi,tot);
    }
    if(mi<=B)sx=m;
    else dx=m;
  }
  return (int)sx;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...