#include <bits/stdc++.h>
using namespace std;
#define int int64_t
int M = 10000000000;
int li(vector<int> a){
int n = a.size();
vector<int> c(n+1 , M);
c[0] = -M;
int ans = 0;
for(int i = 0; i < n; i++){
int j = lower_bound(c.begin() , c.end() , a[i])-c.begin();
c[j] = a[i];
ans = max(ans , j);
}
return ans;
}
int32_t main() {
int n , x; cin >> n >> x;
vector<int> a;
for(int i = 0; i < n; i++){
int b; cin >> b;
a.push_back(b);
}
int ans = 0;
for(int i = -x; i <= x; i++){
vector<int> b;
for(int j = 0; j < n; j++){
b.push_back(max(a[j] , a[j]+i));
b.push_back(min(a[j] , a[j]+i));
}
ans = max(ans , li(b));
}
cout << ans << 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... |