This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
/*input
*/
#include<bits/stdc++.h>
#include "ricehub.h"
using namespace std;
const int N=1e5+100;
const int mod=1e9 + 7;
#define pii pair<int, int>
#define f first
#define s second
#define mp make_pair
#define FOR(i, n) for(int i=1;i<=n;i++)
#define TRACE(x) cerr << #x << " = " << x << endl
//Trace prints the name of the variable and the value.
int besthub(int n, int L, int arr[], long long tot)
{
int l=1, r=1;
vector<pii> vals;long long rem=tot;int ans=1;
for(int i=1;i<=n;i++)
{
while(l<i&&r<n&&arr[i]-arr[l]>arr[r+1]-arr[i])
{
rem+=arr[i]-arr[l];rem-=arr[r+1]-arr[i];r++;l++;
}
while(l>1&&r<n)
{
int cost=min(arr[i]-arr[l-1], arr[r+1]-arr[i]);
if(cost>rem) break;
if(arr[i]-arr[l-1]< arr[r+1]-arr[i])
{
l--;
}
else r++;
rem-=cost;
}
vals.push_back(mp(l, r));ans=max(ans, r-l+1);
}
if(vals.size()>1)
{ for(int i=1;i<(int)vals.size();i++)
{
if(vals[i].s==n) break;
assert(vals[i].f>=vals[i-1].f);
}
}
return ans;
}
/*signed main()
{
ios_base::sync_with_stdio(false);cin.tie(NULL);cout.tie(NULL);
int n, b;cin>>n>>b;int arr[N];
for(int i=1;i<=n;i++)
{
cin>>arr[i];
}
cout<<besthub(n, 0, arr, b);
}*/
# | 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... |