Submission #226405

#TimeUsernameProblemLanguageResultExecution timeMemory
226405cfalasRice Hub (IOI11_ricehub)C++14
68 / 100
28 ms2304 KiB
#include<bits/stdc++.h>
using namespace std;
#include "ricehub.h"
#define ll long long
#define MID ((l+r)/2)


int besthub(int n, int rr, int x[], long long b) {
	int pre[n+1] = {};
	pre[0] = 0;
	for(int i=0;i<n;i++) pre[i+1] = pre[i] + x[i];
	int ans=0;
	for(int i=0;i<n;i++){
		int l=i;
		int r=n-1;
		int m, mm;
		while(l<=r){
			m = MID;
			int mid = (i+m)/2;
			//cout<<"mdian: "<<x[mid]<<endl;
			//cout<<"sum before: "<<pre[mid]-pre[i]<<endl;
			ll c = (mid-i) * x[mid] - pre[mid]+pre[i];
			//cout<<"sum after: "<<pre[m+1]-pre[mid+1]<<endl;
			c+= pre[m+1]-pre[mid+1] - (m-mid) * x[mid];
			//cout<<i<< " "<<m<<" "<<c<<endl;
			if(c>b) r = m-1;
			else mm=m, l=m+1;
		}
		ans = max(ans,mm-i+1);
	}
	return ans;
}

Compilation message (stderr)

ricehub.cpp: In function 'int besthub(int, int, int*, long long int)':
ricehub.cpp:29:19: warning: 'mm' may be used uninitialized in this function [-Wmaybe-uninitialized]
   ans = max(ans,mm-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...