# | Submission time | Handle | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
212573 | 2020-03-23T15:08:29 Z | T0p_ | Rice Hub (IOI11_ricehub) | C++14 | 0 ms | 0 KB |
#include<bits/stdc++.h> #include "ricehub.h" using namespace std; #define lli long long int besthub(int R, int L, int X[], lli B) { int ans = 0; for(int i=0 ; i<r ; i++) { int l = i-1, r = i+1, cou = 1; lli temp = B; while(l >= 0 && r < R) { if(X[i] - X[l] <= X[r] - X[i] && temp >= X[i] - X[l]) { cou++; temp -= X[i] - X[l]; l--; } else if(X[i] - X[l] > X[r] - X[i] && temp >= X[r] - X[i]) { cou++; temp -= X[r] - X[i]; r++; } else break ; } while(l >= 0) { if(temp >= X[i] - X[l]) { cou++; temp -= X[i] - X[l]; l--; } else break ; } while(r < R) { if(temp >= X[r] - X[i]) { cou++; temp += X[r] - X[i]; r++; } else break ; } ans = max(ans, cou); } return ans; }