Submission #1301166

#TimeUsernameProblemLanguageResultExecution timeMemory
1301166b_malinowskiRice Hub (IOI11_ricehub)C++20
0 / 100
0 ms332 KiB
#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 timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...