#include "ricehub.h"
//#include "grader.cpp"
#include <bits/stdc++.h>
using namespace std;
#define ll long long
ll pref[100010];
ll sum(int i, int j){
return pref[j+1]-pref[i];
}
int besthub(int n, int m, int a[], ll k)
{
pref[0] = 0;
for(int i = 0; i < n; i++) pref[i+1] = pref[i]+a[i];
int l = 1, r = n;
while(l<r){
ll mid = (l+r)/2, mn = (ll)4e18;
for(int i = 0; i <= n-mid; i++){
int j = i+mid-1; int med = (i+j)/2;
if(med>=i and med<=j)
mn = min(mn, (ll)a[med]*(med-i+1)-sum(i,med)+sum(med+1,j)-a[med]*(j-med));
med--;
if(med>=i and med<=j)
mn = min(mn, (ll)a[med]*(med-i+1)-sum(i,med)+sum(med+1,j)-a[med]*(j-med));
med+=2;
if(med>=i and med<=j)
mn = min(mn, (ll)a[med]*(med-i+1)-sum(i,med)+sum(med+1,j)-a[med]*(j-med));
}
if(mn<=k) l=mid;
else r = mid-1;
}
return l;
}
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
1 ms |
212 KB |
Output is correct |
2 |
Execution timed out |
1077 ms |
212 KB |
Time limit exceeded |
3 |
Halted |
0 ms |
0 KB |
- |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
0 ms |
212 KB |
Output is correct |
2 |
Correct |
0 ms |
212 KB |
Output is correct |
3 |
Execution timed out |
1069 ms |
308 KB |
Time limit exceeded |
4 |
Halted |
0 ms |
0 KB |
- |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Execution timed out |
1087 ms |
312 KB |
Time limit exceeded |
2 |
Halted |
0 ms |
0 KB |
- |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Execution timed out |
1077 ms |
596 KB |
Time limit exceeded |
2 |
Halted |
0 ms |
0 KB |
- |