#include<bits/stdc++.h>
#define int long long
using namespace std;
int a[200005], dp[200005], startOf[200005];
signed main()
{
ios_base::sync_with_stdio(false);
cin.tie(0);
int n, m; cin>>n>>m;
for(int i = 1; i <= n; i++){
cin>>a[i]; a[i] -= i*m;
}
reverse(a+0, a+n+1);
memset(startOf, 0x3f, sizeof(startOf)); startOf[0] = -1e18;
for(int i = 0; i <= n; i++){
dp[i] = upper_bound(startOf + 0, startOf + n + 2, a[i]) - startOf;
startOf[dp[i]] = min(startOf[dp[i]], a[i]);
}
cout<<n+1-dp[n];
}
| # | 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... |