# | Submission time | Handle | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
224519 | 2020-04-18T09:50:04 Z | T0p_ | Rice Hub (IOI11_ricehub) | C++14 | 0 ms | 0 KB |
#include "ricehub.h" int besthub(int R, int L, int X[], long long B) { int ans = 0; for(int i=0 ; i<R ; i++) { long long temp = B; int l=i-1, r=i+1, now = 0; while(l >= 0 && r < R) { if(temp < X[i] - X[l] && temp < X[r] - X[i]) break ; if(X[i] - X[l] <= X[r] - X[i]) { temp -= (X[i] - X[l]); l--; now++; } else { temp -= (X[r] - X[i]); r++; now++; } } while(l >= 0) { if(temp < X[i] - X[l]) break ; temp -= (X[i] - X[l]); l--; now++; } while(r < R) { if(temp < X[r] - X[i]) break ; temp -= (X[r] - X[i]); r++; now++; } ans = max(ans, now); } return ans; }