# | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
493529 | 2021-12-11T21:46:54 Z | Leo121 | 쌀 창고 (IOI11_ricehub) | C++14 | 0 ms | 0 KB |
#include <bits/stdc++.h> #include "ricehub.h" typedef long long ll; int besthub(int R, int L, int X[], long long B) { int li = 0, ls = 0, mediana, res = 1, nueva_mediana; ll inversion = 0LL; while(ls < R - 1){ ls ++; mediana = (li + ls) / 2; inversion += ((ll) X[ls] - (ll) X[mediana]); if(inversion <= B){ res = max(res, ls - li + 1); continue; } while(inversion > B){ inversion -= ((ll) X[mediana] - (ll) X[li]); nueva_mediana = (li + ls + 1) / 2; if(mediana != (li + ls + 1) / 2){ inversion -= ((ll) X[nueva_mediana] - (ll) X[mediana]); } li ++; mediana = nueva_mediana; } } return res; }