Submission #494006

#TimeUsernameProblemLanguageResultExecution timeMemory
494006OzyRice Hub (IOI11_ricehub)C++17
100 / 100
13 ms2508 KiB
#include "ricehub.h" #include <bits/stdc++.h> using namespace std; #define lli long long int #define rep(i,a,b) for (int i = (a); i <= (b); i++) #define repa(i,a,b) for (int i = (a); i >= (b); i--) #define debug(a) cout << #a << " = " << a << endl #define debugsl(a) cout << #a << " = " << a << ", " #define MAX 100000 lli n,l,b,ini,fin,mitad,res,centro; lli arr[MAX+2]; bool sepuede(lli num) { lli dif,sum = 0; centro = (num+1)/2; rep(i,1,num) sum += abs(arr[centro]-arr[i]); if (sum <= b) return true; rep(i,1,(n-num)) { dif = arr[centro+1] - arr[centro]; sum -= arr[centro] - arr[i]; if (!(num&1)) sum -= dif; centro++; sum += arr[i+num] - arr[centro]; if (sum <= b) return true; } return false; } int besthub(int R, int L, int X[], long long B) { n = R; l = L; rep(i,0,n-1) arr[i+1] = X[i]; b = B; ini = 1; fin = n; while (ini <= fin) { mitad = (ini+fin)/2; if (sepuede(mitad)) { ini = mitad+1; res = mitad; } else fin = mitad-1; } return res; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...