#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++)
{
if (fields[i+amo/2]*(amo/2) - pref[i+amo/2] + pref[i] + (pref[i+amo] - pref[i+amo/2+1]) - fields[i+amo/2]*(i+amo-1-amo/2) <= 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... |