Advertisement
Guest User

Untitled

a guest
Aug 9th, 2015
179
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.47 KB | None | 0 0
  1. #include <bits/stdc++.h>
  2.  
  3. using namespace std;
  4.  
  5. typedef long long ll;
  6. typedef vector < ll > vll;
  7. typedef pair < ll, ll > pll;
  8. typedef pair < int , int > pii;
  9. typedef vector < int > vii;
  10.  
  11. #define rep(i, n) for(int i = 0; i < n; ++i)
  12. #define reps(i, a, n) for (int i = a; i < n; ++i)
  13. #define fst first
  14. #define l(x) (((x) << 1) | 1)
  15. #define r(x) (l(x) + 1)
  16. #define snd second
  17. #define ajd adj
  18. long long R, L, B;
  19. ll X[100000 + 500];
  20. long long besthub(long long R, long long L, long long X[], long long B);
  21. ll cost = 0;
  22. ll INF = 1LL << 62LL;
  23. ll ans = 1;
  24. ll F[100000 + 500];
  25. ll S[100000 + 500];
  26. long long besthub(long long R, long long L, long long X[], long long B)
  27. {
  28.     ll start = 0, end = 1;
  29.     rep (i, R) F[i] = X[i];
  30.     S[0] = F[0];
  31.     reps (i, 1, R) S[i] = S[i - 1] + F[i];
  32.     F[R] = INF;
  33.     sort(F, F + R);
  34.     while (end < R) {
  35.         //cout << end << " " << start << " " << cost << '\n';
  36.         if (start >= end) {
  37.             end = start + 1;
  38.             cost = 0;
  39.             continue;
  40.         }
  41.         long long mid = (start + end) / 2;
  42.         ll cost1 = F[mid] * (mid - start + 1) - S[mid] + (start > 0 ? S[start - 1] : 0);
  43.         cost1 += S[end] - S[mid] - F[mid] * (end - mid);
  44.         if (cost1 <= B) end++;
  45.         else start++;
  46.         ans = max(ans, end - start);
  47.     }
  48.     ans = max(ans, end - start);
  49.     return ans;
  50. }
  51. int main() {
  52.     ios_base::sync_with_stdio(false); cin.tie(0);
  53.     cin >> R >> L >> B;
  54.     for (int i = 0; i < R; ++i) cin >> X[i];
  55.     cout << besthub(R, L, X, B) << '\n';
  56. }
  57. // g++ -W -Wall -O2 ricehub.cpp grader.cpp -o ricehub
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement