fork download
  1. #include <bits/stdc++.h>
  2. using namespace std;
  3.  
  4. int main() {
  5. int t,n1,k;
  6. cin>>t;
  7. while(t--){
  8. cin>>n1>>k;
  9. int A[n1];
  10. for(int i = 0 ; i<n1 ; i++){
  11. cin>>A[i];
  12. }
  13. map<int,int>m;
  14. int i = 0 , j = 0;
  15. int maxi = 0;
  16. while(j<n1){
  17. m[A[j]] = m[A[j]]+1;
  18. auto it2 = m.begin();
  19. int d = it2->first;
  20. auto it = m.end();
  21. it--;
  22. int e = it->first;
  23. int diff = e-d;
  24. while(diff>k){
  25. m[A[i]] = m[A[i]] - 1;
  26. if(m[A[i]]==0){
  27. m.erase(A[i]);
  28. }
  29. int d = m.begin()->first;
  30. auto it = m.end();
  31. it--;
  32. int e = it->first;
  33. diff = e-d;
  34. i++;
  35. }
  36. maxi = max(maxi,(j-i+1));
  37. j++;
  38. }
  39. cout<<maxi<<endl;
  40. }
  41. return 0;
  42. }
Success #stdin #stdout 0s 5316KB
stdin
3
4 4
8 2 4 7
6 5
10 1 2 4 7 2
8 0
4 2 2 2 4 4 2 2
stdout
2
4
3