Submission #830218

#TimeUsernameProblemLanguageResultExecution timeMemory
830218OAleksaRice Hub (IOI11_ricehub)C++14
100 / 100
16 ms2796 KiB
#include <bits/stdc++.h>
#include "ricehub.h"
#define f first
#define s second
using namespace std; 
 
int besthub(int R, int L, int X[], long long B)
{
  	int n = R;
  	int a[n];
  	for(int i = 0;i < n;i++)
  		a[i] = X[i];
  	vector<long long> p(n);
  	p[0] = a[0];
  	for(int i = 1;i < n;i++)
  		p[i] = p[i - 1] + a[i];
  	auto check = [&](int l, int r) {
  		int mid = (l + r) / 2;
  		long long sl = 1ll * a[mid] * (mid - l + 1) - p[mid] + (l == 0 ? 0 : p[l - 1]);
  		long long sr = 1ll * p[r] - p[mid] - 1ll * a[mid] * (r - mid);
  		return sl + sr <= B;
  	};
  	int ans = 1;
	for(int i = 0;i < n;i++) {
		int l = i, r = n - 1, mx = i;
		while(l <= r) {
			int mid = (l + r) / 2;
			if(check(i, mid)) {
				mx = mid;
				l = mid + 1;
			}
			else
				r = mid - 1;
		}
		ans = max(ans, mx - i + 1);
	}
	return ans;
}
 
// signed main()
// {
	// ios_base::sync_with_stdio(false);
	// cin.tie(0);
	// cout.tie(0);
	// int tt = 1;
	// //cin >> tt;
	// while(tt--) {
		 // int n, k;
		 // long long x;
		 // cin >> n >> k >> x;
		 // int a[n];
		 // for(int i = 0;i < n;i++)
		 	// cin >> a[i];
		// cout << besthub(n, k, a, x);
	// }
   // return 0;
// }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...