Submission #285081

#TimeUsernameProblemLanguageResultExecution timeMemory
285081Bill_00Rice Hub (IOI11_ricehub)C++14
100 / 100
38 ms2560 KiB
#include "ricehub.h" #include <bits/stdc++.h> using namespace std; #define ll long long int besthub(int R, int L, int a[], long long B) { long long dp[100001]; dp[0]=0; for(int i=1;i<R;i++){ dp[i]=dp[i-1]+(ll)a[i]-(ll)a[0]; } ll l=1,r=R; while(l!=r){ ll mid=(l+r)>>1,flag=0; for(ll i=mid-1;i<(ll)R;i++){ ll MID=(i*2+1-mid)>>1; ll left=i+1-mid; long long cost=dp[i]-dp[MID]-((i-MID)*((ll)a[MID]-(ll)a[0]))+(((ll)a[MID]-(ll)a[left])*(MID-left+1)-(dp[MID]-dp[left]-(MID-left)*((ll)a[left]-(ll)a[0]))); if(cost<=B){ flag++; break; } } if(flag==0) r=mid; else l=mid+1; } ll flag=0; for(ll i=l-1;i<(ll)R;i++){ ll MID=(i*2+1-l)>>1; ll left=i+1-l; long long cost=dp[i]-dp[MID]-((i-MID)*((ll)a[MID]-(ll)a[0]))+(((ll)a[MID]-(ll)a[left])*(MID-left+1)-(dp[MID]-dp[left]-(MID-left)*((ll)a[left]-(ll)a[0]))); if(cost<=B){ flag++; break; } } if(flag>0) return l; return l-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...