#include <bits/stdc++.h>
using namespace std;
#define ll long long
void test_case() {
int n;
int x;
cin >> n >> x;
int a[n];
for (int i = 0; i < n; i++) cin >> a[i];
vector<int> v(n, 1e9+5);
int ans = 0;
int a1[n]={};
for (int i = 0; i < n; i++) {
int l = lower_bound(v.begin(), v.end(), a[i]) - v.begin();
v[l] = a[i];
a1[i] = l + 1;
ans = max(ans, a1[i]);
}
vector<int> v1(n, 1e9+5);
for (int i = n - 1; i >= 0; i--) {
int l = lower_bound(v1.begin(), v1.end(), -a[i] + x) - v1.begin();
ans = max(ans, a1[i] + l);
int r = lower_bound(v1.begin(), v1.end(), -a[i]) - v1.begin();
v1[r] = -a[i];
}
cout << ans;
}
int main() {
int t;
t=1;
while (t--) test_case();
}
# | 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... |