Submission #296645

#TimeUsernameProblemLanguageResultExecution timeMemory
296645alexandra_udristoiuRice Hub (IOI11_ricehub)C++14
100 / 100
28 ms2944 KiB
#include "ricehub.h" #include<algorithm> #define DIM 100005 using namespace std; static int v[DIM], n; static long long sum[DIM]; long long calc(int p, int u, int i){ return ( sum[u] - sum[i] - v[i] * 1LL * (u - i) ) + ( (i - p + 1) * 1LL * v[i] - sum[i] + sum[p - 1]); } long long solve(int k){ int i, p; long long minim = 100000000000000LL; p = 1; for(i = 1; i <= n - k + 1; i++){ p = max(p, i); while(p < i + k - 1 && calc(i, i + k - 1, p + 1) <= calc(i, i + k - 1, p) ){ p++; } minim = min(minim, calc(i, i + k - 1, p) ); } return minim; } int besthub(int N, int m, int X[], long long b){ int i, st, dr, mid; n = N; for(i = 1; i <= n; i++){ v[i] = X[i - 1]; sum[i] = sum[i - 1] + v[i]; } st = 1; dr = n; while(st <= dr){ mid = (st + dr) / 2; if( solve(mid) <= b ){ st = mid + 1; } else{ dr = mid - 1; } } return dr; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...