#include <bits/stdc++.h>
#define int long long
#define sz(a) (int)a.size()
using namespace std;
signed main() {
ios_base::sync_with_stdio(false); cin.tie(nullptr);
int n,x; cin >> n >> x;
vector<int> t(n);
for (int i = 0; i < n; i++) cin >> t[i];
vector<int> pref(n,0);
vector<int> suff(n,0);
vector<int> lis;
lis.push_back(t[0]);
pref[0]=1;
for (int i = 1; i < n; i++)
{
if(t[i]+x>lis.back()) pref[i]=sz(lis)+1;
else{
int p=(lower_bound(lis.begin(), lis.end(), t[i]+x))-lis.begin();
pref[i]=p;
}
if(t[i]>lis.back()) {
lis.push_back(t[i]);
}else{
int p=(lower_bound(lis.begin(), lis.end(), t[i]))-lis.begin();
lis[p]=t[i];
}
}
lis.clear();
lis.push_back(-t[n-1]);
pref[0]=1;
for (int i = n-2; i >= 0; i--)
{
if(t[i]>lis.back()) {
lis.push_back(t[i]);
suff[i]=sz(lis);
}else{
int p=(lower_bound(lis.begin(), lis.end(), t[i]))-lis.begin();
lis[p]=t[i];
suff[i]=p;
}
}
int mx=max(pref[n-1],suff[0]);
for (int i = 1; i < n; i++) mx=max(mx,pref[i-1]+suff[i]-1);
cout << mx << "\n";
return 0;
}
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Incorrect |
1 ms |
348 KB |
Output isn't correct |
2 |
Halted |
0 ms |
0 KB |
- |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Incorrect |
1 ms |
348 KB |
Output isn't correct |
2 |
Halted |
0 ms |
0 KB |
- |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Incorrect |
1 ms |
348 KB |
Output isn't correct |
2 |
Halted |
0 ms |
0 KB |
- |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Incorrect |
46 ms |
7004 KB |
Output isn't correct |
2 |
Halted |
0 ms |
0 KB |
- |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Incorrect |
11 ms |
2140 KB |
Output isn't correct |
2 |
Halted |
0 ms |
0 KB |
- |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Incorrect |
18 ms |
3676 KB |
Output isn't correct |
2 |
Halted |
0 ms |
0 KB |
- |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Incorrect |
1 ms |
348 KB |
Output isn't correct |
2 |
Halted |
0 ms |
0 KB |
- |