fork download
  1. #include<stdio.h>
  2. #include<queue>
  3. using namespace std;
  4. int n, t;
  5. int D[121212];
  6. int f(int x) {
  7. priority_queue<int>Q;
  8. int i;
  9. for (i = 0; i < x; i++) {
  10. Q.push(-D[i]);
  11. }
  12. for (i = x; i < n; i++) {
  13. int now = Q.top();
  14. Q.pop();
  15. Q.push(now - D[i]);
  16. }
  17. while (Q.size() > 1)Q.pop();
  18. return -Q.top() <= t;
  19. }
  20. int main() {
  21. int i, j;
  22. scanf("%d%d", &n, &t);
  23. for (i = 0; i < n; i++)scanf("%d", &D[i]);
  24. int s = 1, e = n;
  25. int ans;
  26. while (s <= e) {
  27. int m = (s + e) / 2;
  28. if (f(m)) {
  29. ans = m;
  30. e = m - 1;
  31. }
  32. else s = m + 1;
  33. }
  34. printf("%d", ans);
  35. return 0;
  36. }
Success #stdin #stdout 0s 4444KB
stdin
Standard input is empty
stdout
-447141728