제출 #833003

#제출 시각아이디문제언어결과실행 시간메모리
833003Halym2007쌀 창고 (IOI11_ricehub)C++11
100 / 100
12 ms4140 KiB
#include <bits/stdc++.h>
using namespace std;
#define ll long long
#define pb push_back

int besthub(int R, int L, int X[], ll B) {
	vector <ll> arr(R + 1, 0), p(R + 1, 0), pr(R + 2, 0);
	for (int i = 0; i < R; ++i) {
		arr[i + 1] = X[i];
	}
	for (ll i = 1; i <= R; ++i) {
		p[i] = (arr[i] - arr[i - 1]) * (i - 1) + p[i - 1];
	}
	
	for (ll i = R; i > 0; i--) {
		pr[i] = (arr[i + 1] - arr[i]) * (R - i) + pr[i + 1];
	}
	ll l = 1, r = 1, jogap = 1;
	while (l <= R and r <= R) {
		ll md = (l + r + 1) / 2; 
		ll sum = p[md] - p[l - 1] - ((l - 1) * (arr[md] - arr[l - 1])); 
		ll sum1 = pr[md] - pr[r + 1] - ((R - r) * (arr[r + 1] - arr[md])); // yalnysh su
		ll sum2 = sum + sum1;
		if (sum2 <= B) {
			r++;
		}
		else {
			// l r -1 
			jogap = max (jogap, r - l);
			l++;
		}
	}
	jogap = max (jogap, r - l);
	return jogap;
}	
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...