fork download
  1. #include <bits/stdc++.h>
  2. #include <ext/pb_ds/assoc_container.hpp>
  3. #include <ext/pb_ds/tree_policy.hpp>
  4.  
  5. using namespace std;
  6. using namespace __gnu_pbds;
  7. using ll = long long;
  8. using ld = long double;
  9.  
  10. #define all(x) x.begin(),x.end()
  11. #define v(x) vector<x>
  12. #define nl '\n'
  13. #define fxd(x) fixed << setprecision(x)
  14. template<class t> using ordered_set = tree<t, null_type, less<t>, rb_tree_tag, tree_order_statistics_node_update>;
  15. template<class t> using ordered_multiset = tree<t, null_type, less_equal<t>, rb_tree_tag, tree_order_statistics_node_update>;
  16.  
  17.  
  18. int main()
  19. {
  20. ios_base::sync_with_stdio(false); cin.tie(nullptr); cout.tie(nullptr);
  21. ll n , k ; cin >> n >> k;
  22. v(ll) arr(n); for (int i = 0; i < n; i++) cin >> arr[i];
  23.  
  24. multiset<ll> mst; ll cnt = 0 , l = 0;
  25. for (int r = 0; r < n; r++)
  26. {
  27. mst.insert(arr[r]);
  28. while (*(--mst.end()) - *mst.begin() > k)
  29. {
  30. mst.erase(mst.find(arr[l++]));
  31. }
  32. cnt += mst.size();
  33. }
  34. cout << cnt;
  35. }
Success #stdin #stdout 0.02s 7108KB
stdin
Standard input is empty
stdout
2642899456