제출 #880178

#제출 시각아이디문제언어결과실행 시간메모리
880178AlphaMale06Rice Hub (IOI11_ricehub)C++14
0 / 100
2 ms600 KiB
#include<bits/stdc++.h> #include "ricehub.h" using namespace std; using ll = long long; int besthub(int n, int L, int a[], long long c) { ll sum=0; ll pref[n+1]; ll suf[n+1]; suf[n]=0; pref[0]=0; for(int i=0; i< n; i++){ sum+=a[i]; pref[i+1]=sum; } for(int i=n-1; i>=0; i--){ suf[i]=pref[n]-pref[i]; } ll sufind=n; ll mx; ll s=n/2; ll cost=a[s]*s-pref[s]-a[s]*(n-s)+suf[s]; while(cost>c){ sufind--; s=sufind/2; cost=a[s]*(s+1)-pref[s+1]-a[s]*(n-s-1)+suf[s]-suf[sufind+1]; } mx=sufind+1; for(int i=1; i< n; i++){ cost=0; while(cost<=c && sufind<n){ s=(sufind+i)/2; cost=a[s]*(s-i+1)-pref[s+1]+pref[i]-a[s]*(sufind-s)+suf[s+1]-suf[sufind+1]; sufind++; } if(sufind==n && cost<=c){ mx=max(mx, sufind-i); break; } else{ sufind--; mx=max(mx, sufind-i); } } return mx; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...