Submission #1249331

#TimeUsernameProblemLanguageResultExecution timeMemory
1249331NurislamRice Hub (IOI11_ricehub)C++20
17 / 100
1 ms328 KiB
#include <bits/stdc++.h> //#include "grader.cpp" #include "ricehub.h" using namespace std; typedef long long ll; ll inf = 1e18; int besthub(int n, int L, int A[], ll b){ vector<int> a(n); for(int i = 0; i < n; i ++ ) a[i] = A[i]; sort(a.begin(), a.end()); ll ans = 0; ll cur = 0; ll l = 0, r = 0; for(int i = 0; i < n; i ++ ) { while(r+1 < n && a[i] - a[l] > a[r+1] - a[l]){ r ++; cur += a[r] - a[i]; cur += a[i] - a[l]; l ++; }; while(1) { //cout << 1 << endl; ll lf = (l== 0 ? inf: a[i] - a[l-1]); ll ri = (r==n-1 ? inf: a[r+1] - a[i]); if(lf == inf && ri == inf) break; if(lf <= ri && lf + cur <= b) { cur += lf; l -- ; }else if(ri < lf && ri + cur <= b) { cur += ri; r ++ ; }else break; }; //cout << l << ' ' << r << ' ' << i << '\n'; ans = max(ans, r-l+1); if(i+1 < n) { cur += ((i-l+1) - (r - i)) * (a[i+1]-a[i]); if(r < i+1) r++; while(l <= i && cur > b) { cur -= (a[i+1] - a[l]); l ++ ; }; }; }; 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...