fork download
  1. #include <bits/stdc++.h>
  2. using namespace std;
  3. int main() {
  4. int n, m, k;
  5. cin >> n >> m >> k;
  6. vector<int> a(n);
  7. for(int i = 0; i < n; ++i) {
  8. cin >> a[i];
  9. }
  10. sort(a.begin(), a.end());
  11. reverse(a.begin(), a.end());
  12. long long tinggi = m;
  13. int efektif = 0;
  14. for(int i = 0; i < n; ++i) {
  15. tinggi += k;
  16. // cek apakah ada di a yang nilainya lebih dari tinggi
  17. while(a.size() > 0 && a.back() <= tinggi) {
  18. // tidak mungkin bisa efektif dibuang
  19. a.pop_back();
  20. }
  21. if(a.size() == 0) {
  22. // tidak ada yg efektif -> berhenti
  23. break;
  24. }
  25. // ada yg memenuhi syarat > tinggi
  26. tinggi = max(tinggi, (long long)a.back());
  27. a.pop_back();
  28. ++efektif;
  29. }
  30. cout << efektif << endl;
  31. }
Success #stdin #stdout 0.01s 5280KB
stdin
6 3 2
9 10 10 6 18 16
stdout
3