This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include "ricehub.h"
#include <iostream>
#include <string>
#include <algorithm>
#include <vector>
#include <set>
#include <map>
#include <queue>
#include <cmath>
#include <bitset>
 
using namespace std;
 
const int N = 200003;
 
long long r, l, b;
long long x[N], p[N];
 
long long sum(int xl, int xr)
{
    return max(0ll, p[xr] - p[xl - 1]);
}
 
long long cost(int xl, int xr)
{
    int xm = (xl + xr) / 2;
    return sum(xm + 1, xr) - sum(xl, xm - ((xr - xl) % 2 == 0));
}
 
long long search(int ind)
{
    int xl = ind, xr = r;
    while (xl < xr)
    {
        int xm = (xl + xr + 1) / 2;
        if (cost(ind, xm) <= b)
        {
            xl = xm;
        }
        else
        {
            xr = xm - 1;
        }
    }
    return xl - ind + 1;
}
 
int besthub(int R, int L, int X[], long long B) {
	r = R;
  	l = L;
  	b = B;
    for (int i = 1; i <= r; i++)
    {
        x[i] = X[i - 1];
    }
    for (int i = 1; i <= r; i++)
    {
        p[i] = x[i] + p[i - 1];
    }
    long long ans = 0;
    for (int i = 1; i <= r; i++)
    {
        ans = max(ans, search(i));
    }
    return ans;
}
| # | Verdict  | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict  | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict  | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict  | Execution time | Memory | Grader output | 
|---|
| Fetching results... |