Submission #170437

#TimeUsernameProblemLanguageResultExecution timeMemory
170437nafis_shifatRice Hub (IOI11_ricehub)C++14
100 / 100
29 ms3448 KiB
#include "ricehub.h"
#include<bits/stdc++.h>
#define ll long long
using namespace std;
const int mxn=1e5+5;
const ll inf=2e15+5;

ll ar[mxn];
int besthub(int R, int L, int X[], long long B)
{
	ll tot[mxn];
	tot[0]=0;
	for(int i=1;i<=R;i++)
	{
		ar[i]=X[i-1];
		tot[i]=tot[i-1]+ar[i];
	}

	int ans=0;

	for(int i=1;i<=R;i++)
	{


		int lo=i;
		int hi=R;


		while(lo<=hi)
		{
			int mid=lo+hi>>1;

			int k=i+mid>>1;

			

			ll ts=(ar[k]*(k-i+1))-(tot[k]-tot[i-1]);
			ts+=(tot[mid]-tot[k])-ar[k]*(mid-k);
			
			


			if(ts<=B)
			{
				ans=max(ans,mid-i+1);
				lo=mid+1;
			}
			else
			{
				hi=mid-1;
			}

		}

	}


	return ans;
}

Compilation message (stderr)

ricehub.cpp: In function 'int besthub(int, int, int*, long long int)':
ricehub.cpp:31:14: warning: suggest parentheses around '+' inside '>>' [-Wparentheses]
    int mid=lo+hi>>1;
            ~~^~~
ricehub.cpp:33:11: warning: suggest parentheses around '+' inside '>>' [-Wparentheses]
    int k=i+mid>>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...