#include <bits/stdc++.h>
//#define int long long
#define pb push_back
#define fs first
#define sc second
#include "ricehub.h"
using namespace std;
int besthub(int r, int l, int x[], long long b) {
vector<long long> pref(r + 1, 0);
for (int i = 0; i < r; i++) {
pref[i + 1] = pref[i] + x[i];
}
int ans = 1;
int ll = 1, rr = r;
while (ll <= rr) {
int mid = (ll + rr) / 2;
bool ok = false;
for (int i = 0; i + mid <= r; ++i) {
int s = i;
int t = i + mid - 1;
int p = (s + t) / 2;
int rp = x[p];
int lcnt = p - s;
long long lsum = pref[p] - pref[s];
int rcnt = t - p;
long long rsum = pref[t + 1] - pref[p + 1];
long long cost = (rp * lcnt - lsum) + (rsum - rp * rcnt);
if (cost <= b) {
ok = true;
break;
}
}
if (ok) {
ans = x[mid - 1];
ll = mid + 1;
} else {
rr = mid - 1;
}
}
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... |