Submission #60712

#TimeUsernameProblemLanguageResultExecution timeMemory
60712theknife2001Rice Hub (IOI11_ricehub)C++17
100 / 100
38 ms14800 KiB
#include "ricehub.h" #include <bits/stdc++.h> using namespace std; const int N=1e5+55; long long sum[N]; long long pos[N]; int n; bool ok(int x, long long b) { long long best,cur; best=1e18+55; for(int i=0;i<=n-x;i++) { cur=pos[x/2+i]*(x/2)-sum[i+x/2-1]; if(i) cur+=sum[i-1]; cur+=sum[i+x-1]-sum[i+(x-1)/2]-pos[x/2+i]*(x/2); // cur=0; // for(int j=i;j<i+x;j++) // { // cur+=abs(pos[j]-pos[i+x/2]); // } best=min(best,cur); } if(best>b) return 0; return 1; } int besthub(int N, int L, int X[], long long B) { n=N; for(int i=0;i<n;i++) { pos[i]=X[i]; sum[i]=X[i]; if(i) sum[i]+=sum[i-1]; } int l=2; int r=n+1; int mid; while(l<r) { mid=(l+r)/2; if(ok(mid,B)) l=mid+1; else r=mid; } 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...