Submission #1176323

#TimeUsernameProblemLanguageResultExecution timeMemory
1176323peraRice Hub (IOI11_ricehub)C++20
Compilation error
0 ms0 KiB
#include<bits/stdc++.h> #include "ricehub.h" #define LL long long using namespace std; int besthub(int R , int L , int X[] , int B){ vector<LL> p(R); for(int i = 0;i < R;i ++){ if(i > 0){ p[i] = p[i - 1]; } p[i] += X[i]; } auto range_sum = [&](int l , int r){ if(l > r){ return 0LL; } return p[r] - (l > 0 ? p[l - 1] : 0); }; int ans = 0; for(int i = 0;i < R;i ++){ int ll , rr; LL t = 0 , S = 0; for(int bit = 30;bit >= 0;bit --){ t += 1 << bit; int l = i , r = i; for(int BIT = 20;BIT >= 0;BIT --){ l -= 1 << BIT; if(l < 0 || X[l] < X[i] - t){ l += 1 << BIT; } r += 1 << BIT; if(r >= R || X[r] > X[i] + t){ r -= 1 << BIT; } } LL sL = (i - l) * X[i] - range_sum(l , i - 1); LL sR = range_sum(i + 1 , r) - (r - i) * X[i]; if(sL + sR > B){ t -= 1 << bit; }else{ ll = l; rr = r; S = sL + sR; } } int old_l = ll , old_r = rr; ans = max(ans , rr - ll + 1); for(int bit = 20;bit >= 0;bit --){ rr += 1 << bit; if(rr >= R){ rr -= 1 << bit; }else{ LL E = range_sum(old_r + 1 , rr) - (rr - old_r) * X[i]; if(S + E > B){ rr -= 1 << bit; }else{ ans = max(ans , rr - old_l + 1); } } ll -= 1 << bit; if(ll < 0){ ll += 1 << bit; }else{ LL E = (old_l - ll) * X[i] - range_sum(ll , old_l - 1); if(S + E > B){ ll += 1 << bit; }else{ ans = max(ans , old_r - ll + 1); } } } } return ans; }

Compilation message (stderr)

/usr/bin/ld: /tmp/ccnrMNlC.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