#include <bits/stdc++.h>
#include "ricehub.h"
using namespace std;
vector<long long int>l,r,v;
long long vrni(int l1,int m)
{
int s=(m-l1)/2;
return l[l1+s/2]-l[l1]+r[l1+s/2]-r[m];
}
int besthub(int n, int m, int v1[], long long k)
{
l.resize(n);
r.resize(n);
v.resize(n);
for(int i=0;i<n;i++)v[i]=v1[i];
long long sum=1;
int res=0;
for(int i=1;i<n;i++)
{
l[i]=l[i-1]+(sum*(v[i]-v[i-1]));
sum++;
}
sum=1;
for(int i=n-2;i>=0;i--)
{
r[i]=r[i+1]+(sum*(v[i+1]-v[i]));
sum++;
}
for(int i=0;i<n;i++)
{
int l1=i,r1=n-1;
while(l1+1<r1)
{
int m=(l1+r1)/2;
sum=vrni(i,m);
if(sum<=k)l1=m;
else r1=m;
}
sum=vrni(i,r1);
if(sum<=k)res=max(res,r1-i+1);
res=max(res,l1-i+1);
}
return res;
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |