#include <bits/stdc++.h>
using namespace std;
#define ll long long
void test_case() {
int n,x;
cin >> n>>x;
int a[n];
for(int i = 0; i < n; i++) {
cin>>a[i];
}
if(x==0) {
vector<int> v;
v.push_back(a[0]);
for(int i = 1; i < n; i++) {
int l =0, r = v.size();
while(l<=r) {
int m = (l+r)/2;
if(v[m]>=a[i]) {
r= m-1;
}
else {
l = m+1;
}
}
if(l>=v.size()) v.push_back(a[i]);
else v[l] = a[i];
}
cout << v.size();
return;
}
int ans = 0;
for(int i = 0; i < n; i++) {
for(int j = 0; j<=i; j++) {
a[j]-=x;
}
vector<int> v;
v.push_back(a[0]);
for(int i1 = 1; i1 < n; i1++) {
int l =0, r = v.size();
while(l<=r) {
int m = (l+r)/2;
if(v[m]>=a[i1]) {
r= m-1;
}
else {
l = m+1;
}
}
if(l>=v.size()) v.push_back(a[i1]);
else v[l] = a[i1];
}
ans = max(ans, (int)(v.size()));
for(int j = 0; j<=i; j++) {
a[j]+=x;
}
}
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... |