#include <bits/stdc++.h>
using namespace std;
int main() {
ios::sync_with_stdio(false);
cin.tie(nullptr);
int n, x;
cin >> n >> x;
vector<int> a(n);
for (int i = 0; i < n; i++) {
cin >> a[i];
}
vector<array<int, 2>> l(n), r(n);
set<int> s;
for (int i = 0; i < n; i++) {
auto it = s.lower_bound(a[i]);
if (it != s.end()) {
s.erase(it);
}
s.insert(a[i]);
l[i][0] = s.size();
l[i][1] = *s.rbegin();
}
set<int> t;
for (int i = n - 1; i >= 0; i--) {
auto it = t.lower_bound(-a[i]);
if (it != t.end()) {
t.erase(it);
}
t.insert(-a[i]);
r[i][0] = t.size();
r[i][1] = -*t.rbegin();
}
int ans = s.size();
for (int i = 0; i < n; i++) {
for (int j = i + 1; j < n; j++) {
if (abs(l[i][1] - r[j][1]) < x) {
ans = max(ans, l[i][0] + r[j][0]);
break;
}
}
}
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... |