#include "ricehub.h"
#include <bits/stdc++.h>
using namespace std;
#define loop(i, a, b) for(int i = a; i <= b; i++)
#define loop_rev(i, a, b) for(int i = a; i >= b; i--)
#define all(x) x.begin(), x.end()
#define sz(x) int(x.size())
#define eb emplace_back
#define pb push_back
using ll = long long;
#define int ll
signed besthub(signed n, signed max_x, signed x[], int B) {
int l = 0, r = (-1), ind = (-1), res = 0;
int median = 0, sum_r = 0, sum_l = 0, cnt_l = 0, cnt_r = 0;
auto is_cool = [&]() {
int cost_l = cnt_l * x[median] - sum_l;
int cost_r = sum_r - cnt_r * x[median];
int cost = cost_l + cost_r;
return (cost <= B);
};
auto fix_median = [&]() {
cnt_l = (r - l + 2) / 2;
cnt_r = (r - l + 1) - cnt_l;
median = l + cnt_l - 1;
while(ind < median) {
++ind;
sum_r -= x[ind];
sum_l += x[ind];
}
};
auto add = [&]() {
sum_r += x[++r];
fix_median();
};
auto rem = [&]() {
sum_l -= x[l++];
fix_median();
};
while(l < n) {
if(is_cool()) {
res = max(res, (r - l + 1));
if(r < n-1) {
add();
}
else {
break;
}
}
else {
rem();
}
}
return res;
}
# | 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... |