#include <bits/stdc++.h>
using namespace std;
#define int long long
int n;
int mx(vector<int>a){
vector<int>dp;
for(int i=1; i<=n; i++){
int pos=lower_bound(dp.begin(),dp.end(), a[i])-dp.begin();
if(pos==dp.size()){
dp.push_back(a[i]);
}else{
dp[pos]=a[i];
}
}return dp.size();
}
int32_t main()
{
ios_base::sync_with_stdio(0);
cin.tie(0);
int x;
cin>>n>>x;
vector<int> a(n+1);
for(int i=1; i<=n; i++){
cin>>a[i];
}int mx1=0;
if(x==0){
cout<<mx(a)<<endl;
}
else{
for(int i=1; i<=n; i++){
for(int j=i; j<=n; j++){
for(int q=-x; q<=x; q++){
for(int w=i; w<=j; w++){
a[w]+=q;
}mx1= max(mx1, mx(a));
for(int w=i; w<=j; w++){
a[w]-=q;
}
}
}
}
}cout<<mx1<<endl;
return 0;
}
# | 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... |