#include <bits/stdc++.h>
using namespace std;
using i64 = long long;
bool Spr(const vector<i64>& fields, vector<i64>& pref, i64 B, int amo)
{
for (int i = 0; i + amo <= fields.size(); i++)
{
int mid = i + amo/2;
i64 l = fields[mid]*(mid-i) - (pref[mid]-pref[i]);
i64 r = (pref[i+amo] - pref[mid+1]) - fields[mid]*(i+amo-1-mid);
if (l + r <= B)
{
return true;
}
}
return false;
}
long long besthub(int R, int L, int X[], long long B)
{
vector<i64> pref(R + 1);
vector<i64> fields(R);
for (int i = 0; i < R; i++)
{
fields[i] = X[i];
pref[i + 1] = pref[i] + fields[i];
}
i64 pocz = 0, kon = R, srodek;
while (pocz < kon)
{
srodek = (pocz + kon + 1) / 2;
if (Spr(fields, pref, B, srodek))
{
pocz = srodek;
}
else
{
kon = srodek - 1;
}
}
return pocz;
}
| # | 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... |