Submission #563325

#TimeUsernameProblemLanguageResultExecution timeMemory
5633251neRice Hub (IOI11_ricehub)C++14
0 / 100
21 ms3340 KiB
#include "ricehub.h"
#include<bits/stdc++.h>
using namespace std;
int besthub(int R, int L, int X[], long long B)
{
  int ans = 1;
  vector<int64_t>pref(R + 1,0),dpref(R + 1,0);
  for (int i = 0 ;i<R - 1;++i){
	  pref[i + 1] = pref[i] + (X[i + 1] - X[i]);
	  dpref[i + 2] = pref[i + 1] + dpref[i + 1];
  }
  auto dist = [&](int l,int r){
	 return pref[r] * (r - l) - dpref[r] + dpref[l];
  };
  auto distt = [&](int l,int r){
	  int mid = (l + r)>>1;
		return dist(l,mid) + dist(mid , r);
  };
  for (int r = 0, l = 0; r < R; r++) {
        while (true) {
            //int mid = (l + r) >> 1;
            if (distt(l,r) <= B)
                break;
            l++; 
        }
 
        ans = max(ans, r - l + 1);
    }
  return ans;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...