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