#include<bits/stdc++.h>
using namespace std;
int ar[200005];
int l[200005],r[200005];
int main(){
ios_base::sync_with_stdio(false);
cin.tie(0);
int n,x;cin>>n>>x;
for(int i=1;i<=n;i++)cin>>ar[i];
vector<int>v;
for(int i=1;i<=n;i++){
int id=lower_bound(v.begin(),v.end(),ar[i])-v.begin();
l[i]=id+1;
if(id==v.size())v.push_back(ar[i]);
else v[id]=ar[i];
}
v.clear();
for(int i=n;i>=1;i--){
//cerr<<"qr:"<<-ar[i]+x<<"\n";
int id=lower_bound(v.begin(),v.end(),-ar[i]+x)-v.begin();
r[i]=id+1;
id=lower_bound(v.begin(),v.end(),-ar[i])-v.begin();
if(id==v.size())v.push_back(-ar[i]);
else v[id]=-ar[i];
//for(auto x:v)cerr<<x<<" ";
//cerr<<"\n";
}
int ans=0;
for(int i=1;i<=n;i++)ans=max(ans,l[i]+r[i]-1);
cout<<ans;
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |