Submission #1248046

#TimeUsernameProblemLanguageResultExecution timeMemory
1248046nikdRice Hub (IOI11_ricehub)C++20
Compilation error
0 ms0 KiB
#include <bits/stdc++.h>
#include <istream>
using namespace std;
using ll = long long;

ll besthub(int n, ll l, vector<ll> x, ll b){
    int sol = 0;
    int idxl = 0;
    int idxr = 0;
    ll curr_cost = 0;
    while(idxr+1 < n && curr_cost+x[idxr+1]-x[0] <= b){
        curr_cost += x[idxr+1] - x[0];
        idxr++;
    }
    sol = idxr-idxl+1;
    for(int i = 1; i<n; i++){
        ll delta = x[i]-x[i-1];
        curr_cost += (i-idxl)*delta;
        curr_cost -= (idxr-i+1)*delta;
        if(idxr < i){
            assert(idxr+1 == i);
            //idxr++;
        }
        while(curr_cost > b){
            curr_cost -= x[i]-x[idxl];
            idxl++;
            assert(idxl <= i);
        }
        while(idxr+1 < n && curr_cost+x[idxr+1]-x[i] <= b){
            curr_cost += x[idxr+1] - x[i];
            idxr++;
        }
        while(idxr+1 < n && x[idxr+1]-x[i] < x[i]-x[idxl]){
            curr_cost -= x[i]-x[idxl];
            curr_cost += x[idxr+1]-x[i];
            idxl++; idxr++;
        }
        while(idxr+1 < n && curr_cost+x[idxr+1]-x[i] <= b){
            curr_cost += x[idxr+1] - x[i];
            idxr++;
        }
        sol = max(sol, idxr-idxl+1);
    }
    return sol;
}

// int main(){
//     freopen("input.txt", "r", stdin);
//     freopen("output.txt", "w", stdout);
//     int n; cin >> n;
//     ll b; cin >> b;
//     vector<ll> x(n);
//     for(ll &i: x) cin >> i;
//     cout << besthub(n, 0, x,b) << '\n';
// }

Compilation message (stderr)

/usr/bin/ld: /tmp/cc2dX1Cv.o: in function `main':
grader.cpp:(.text.startup+0xaa): undefined reference to `besthub(int, int, int*, long long)'
collect2: error: ld returned 1 exit status