# | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
1220653 | hmms127 | Rice Hub (IOI11_ricehub) | C++20 | 0 ms | 0 KiB |
#include "ricehub.h"
#include <bits/stdc++.h>
using namespace std;
#define ll long long
int besthub (int n, int L, int a[], ll B) {
int l=0,idx=0,ans=0;
for(int r=0;r<n;r++){
ll left_sum = (ll)a[mid] * (mid - l) - (pref[mid] - pref[l]);
ll right_sum = (pref[r + 1] - pref[mid + 1]) - (ll)a[mid] * (r - mid);
ll dist = left_sum + right_sum;
while(dist>B){
l++;
mid=(l+r)/2;
left_sum = (ll)a[mid] * (mid - l) - (pref[mid] - pref[l]);
right_sum = (pref[r + 1] - pref[mid + 1]) - (ll)a[mid] * (r - mid);
dist = left_sum + right_sum;
}
ans=max(ans,r-l+1);
}
return ans;
}