#include <bits/stdc++.h>
using namespace std;
constexpr int inf = 2e9;
vector<int> get(vector<int> a) {
int n = a.size();
vector<int> dp(n, inf), r(n);
for (int i = 0; i < n; i++) {
int j = ranges::lower_bound(dp, a[i]) - dp.begin();
dp[j] = a[i];
r[i] = j + 1;
}
return r;
}
int main() {
ios::sync_with_stdio(false);
cin.tie(nullptr);
int n, x;
cin >> n >> x;
vector<int> a(n), b(n);
for (int i = 0; i < n; i++) {
cin >> a[i];
b[i] = a[i] + x;
}
auto l = get(a);
auto r = get(b);
int ans = 0;
for (int i = 0; i < n; i++) {
ans = max(ans, l[i] + r[i] - 1);
}
cout << ans << '\n';
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... |