Submission #1316485

#TimeUsernameProblemLanguageResultExecution timeMemory
1316485khanhphucscratchRice Hub (IOI11_ricehub)C++20
100 / 100
8 ms2360 KiB
#include "ricehub.h"
#include<bits/stdc++.h>
#define int long long
using namespace std;
int a[100005], cd[100005];
int sum(int l, int r)
{
    return cd[r] - cd[l-1];
}
int cost(int l, int r)
{
    int mid = (l+r)/2, median = a[mid];
    return median * (mid-l+1) - sum(l, mid) + (sum(mid+1, r) - median * (r-mid));
}
int32_t besthub(int32_t n, int32_t L, int32_t X[], int B)
{
    for(int i = 1; i <= n; i++) a[i] = X[i-1];
    for(int i = 1; i <= n; i++) cd[i] = cd[i-1] + a[i];
    int ans = 0, j = 1;
    for(int i = 1; i <= n; i++){
        while(cost(j, i) > B) j++;
        ans = max(ans, i-j+1);
    }
    return ans;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...