fork download
  1. #include<bits/stdc++.h>
  2. using namespace std;
  3.  
  4. #define for1(i,m,n) for(int i=m;i<=n;i++)
  5. #define for0(i,m,n) for(int i=m;i<n;i++)
  6.  
  7. #define int long long
  8. #define el '\n'
  9. #define fi first
  10. #define se second
  11. #define ii pair<int,int>
  12. #define vll(i) i.begin(),i.end()
  13.  
  14. const int N=1e7;
  15. const int mod=1e9+7;
  16.  
  17.  
  18. signed main(){
  19. ios_base::sync_with_stdio(0);
  20. cin.tie(0);
  21. cout.tie(0);
  22. // freopen("bai1.INP","r",stdin);
  23. // freopen("bai1.OUT","w",stdout);
  24. deque<ii>dq,dq_;
  25. int n,ans=1,k,st=1;cin>>n>>k;
  26.  
  27. for1(i,1,n) {
  28. int x;cin>>x;
  29. // min
  30. while(!dq.empty()&&abs(x-dq.front().fi)>k){
  31. // cout<<x<<' '<<dq.front().fi<<el;
  32. st=dq.front().se+1;
  33. dq.pop_front();
  34. }
  35. while(!dq_.empty()&&abs(x-dq_.front().fi)>k){
  36. st=dq_.front().se+1;
  37. dq_.pop_front();
  38. }
  39. // cout<<i<<' '<<st<<el;
  40. // cout<<dq.front().fi<<el;
  41. ans=max(ans,i-st+1);
  42.  
  43.  
  44. while(!dq.empty()&&dq.back().fi>x){
  45. dq.pop_back();
  46. }
  47. while(!dq_.empty()&&dq_.back().fi<x){
  48. dq_.pop_back();
  49. }
  50. dq_.push_back({x,i});
  51. dq.push_back({x,i});
  52.  
  53. }
  54. cout<<ans;
  55. return 0;
  56. }
  57.  
Success #stdin #stdout 0s 5288KB
stdin
Standard input is empty
stdout
1