#include <bits/stdc++.h>
//#include "grader.cpp"
#include "ricehub.h"
using namespace std;
typedef long long ll;
ll inf = 1e17;
int besthub(int n, int L, int a[], ll b){
int ans = 0;
sort(a, a + n);
ll cur = 0;
int 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 time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |