Submission #96299

#TimeUsernameProblemLanguageResultExecution timeMemory
96299figter001쌀 창고 (IOI11_ricehub)C++14
100 / 100
51 ms2556 KiB
#include "ricehub.h"
#include <bits/stdc++.h>

using namespace std;

typedef long long ll;
const int  maxr = 1e5+50;

ll sum[maxr];

int besthub(int r, int L, int x[], long long B){
	int ans = 0;
	sum[0] = x[0];
	for(int i=1;i<r;i++)
		sum[i] = sum[i-1] + x[i];
	for(int i=0;i<r;i++){
		int md,lo=i,hi=r-1,best;
		ll rem = 0;
		if(i)rem = sum[i-1];
		while(lo <= hi){
			md = (lo+hi)/2;
			int at = (i+md)/2;
			ll lf = x[at] * (at - i + 1) - (sum[at] - rem);
			ll rem2 = 0;
			if(at)rem2 = sum[at-1];
			ll ri = (sum[md] - rem2) - x[at] * (md-at+1);
			if(ri + lf <= B){
				lo = md+1;
				best = md;
			}else hi = md-1;
		}
		ans = max(ans,best - i + 1);
	}
	return ans;
}

Compilation message (stderr)

ricehub.cpp: In function 'int besthub(int, int, int*, long long int)':
ricehub.cpp:32:22: warning: 'best' may be used uninitialized in this function [-Wmaybe-uninitialized]
   ans = max(ans,best - i + 1);
                 ~~~~~^~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...