Submission #1220664

#TimeUsernameProblemLanguageResultExecution timeMemory
1220664hmms127Rice Hub (IOI11_ricehub)C++20
100 / 100
8 ms1352 KiB
#include "ricehub.h"

#include <bits/stdc++.h>
using namespace std;
#define ll long long
int besthub (int n, int L, int a[], ll B) {
   int l=0,idx=0,ans=0;
   ll pref[n]={};
   for(int i=0;i<n;i++)pref[i+1]=pref[i]+a[i];
   for(int r=0;r<n;r++){
     ll mid=(l+r)/2;
     ll left_sum=(ll)a[mid]*(mid-l)-(pref[mid]-pref[l]);
     ll right_sum=(pref[r+1]-pref[mid+1])-(ll)a[mid]*(r-mid);
     ll dist =left_sum+right_sum;
     while(dist>B){
       l++;
       mid=(l+r)/2;
        left_sum=(ll)a[mid]*(mid-l)-(pref[mid]-pref[l]);
        right_sum=(pref[r+1]-pref[mid+1])-(ll)a[mid]*(r-mid);
        dist=left_sum+right_sum;
     }
     ans=max(ans,r-l+1);
   }
   return ans;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...