#include<bits/stdc++.h>
using namespace std;
#define int long long
int lis(vector<int>&a){
vector<int>tmp;
for(int q=0;q<a.size();q++){
int id=lower_bound(tmp.begin(),tmp.end(),a[q])-tmp.begin();
if(id==tmp.size()){
tmp.push_back(a[q]);
}
else{
tmp[id]=a[q];
}
}
return tmp.size();
}
signed main(){
int n,x;
cin>>n>>x;
vector<int>a;
for(int q=0;q<n;q++){
int x;
cin>>x;
a.push_back(x);
}
if(n<=50 && x<=50){
int ans=0;
for(int val=-x;val<=x;val++){
for(int l=0;l<n;l++){
for(int r=l;r<n;r++){
a[r]+=val;
ans=max(ans,lis(a));
}
for(int r=l;r<n;r++){
a[r]-=val;
}
}
}
cout<<ans<<endl;
}
else if(x==0){
cout<<lis(a)<<endl;
}
}
# | 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... |