#include <bits/stdc++.h>
using namespace std;
class sol {
public:
int lsa(vector<int>& a,int lmt) {
int l=0,r=0,ans=0;
deque<int> m1,m2;
while(r<a.size()) {
while(!m1.empty()&&m1.back()>a[r]) {
m1.pop_back();
}
while(!m2.empty()&&m2.back()<a[r]) {
m2.pop_back();
}
m1.push_back(a[r]);
m2.push_back(a[r]);
while(m2.front()-m1.front()>lmt) {
if(m1.front()==a[l]) {
m1.pop_front();
}
if(m2.front()==a[l]) {
m2.pop_front();
}
++l;
}
ans=max(ans,r-l+1);
++r;
}
return ans;
}
};
int main() {
sol s;
vector<int> nums={8,2,4,7};
int limit=4;
cout<<s.lsa(nums,limit)<<endl;
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CgpjbGFzcyBzb2wgewpwdWJsaWM6CiAgICBpbnQgbHNhKHZlY3RvcjxpbnQ+JiBhLGludCBsbXQpIHsKICAgICAgICBpbnQgbD0wLHI9MCxhbnM9MDsgCiAgICAgICAgZGVxdWU8aW50PiBtMSxtMjsKCiAgICAgICAgd2hpbGUocjxhLnNpemUoKSkgewogICAgICAgICAgICB3aGlsZSghbTEuZW1wdHkoKSYmbTEuYmFjaygpPmFbcl0pIHsKICAgICAgICAgICAgICAgIG0xLnBvcF9iYWNrKCk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgd2hpbGUoIW0yLmVtcHR5KCkmJm0yLmJhY2soKTxhW3JdKSB7CiAgICAgICAgICAgICAgICBtMi5wb3BfYmFjaygpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIG0xLnB1c2hfYmFjayhhW3JdKTsKICAgICAgICAgICAgbTIucHVzaF9iYWNrKGFbcl0pOwoKICAgICAgICAgICAgd2hpbGUobTIuZnJvbnQoKS1tMS5mcm9udCgpPmxtdCkgewogICAgICAgICAgICAgICAgaWYobTEuZnJvbnQoKT09YVtsXSkgewogICAgICAgICAgICAgICAgICAgIG0xLnBvcF9mcm9udCgpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgaWYobTIuZnJvbnQoKT09YVtsXSkgewogICAgICAgICAgICAgICAgICAgIG0yLnBvcF9mcm9udCgpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgKytsOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGFucz1tYXgoYW5zLHItbCsxKTsKICAgICAgICAgICAgKytyOwogICAgICAgIH0KICAgICAgICByZXR1cm4gYW5zOyAKICAgIH0KfTsKCmludCBtYWluKCkgewogICAgc29sIHM7CiAgICB2ZWN0b3I8aW50PiBudW1zPXs4LDIsNCw3fTsKICAgIGludCBsaW1pdD00OwogICAgY291dDw8cy5sc2EobnVtcyxsaW1pdCk8PGVuZGw7CiAgICByZXR1cm4gMDsKfQo=