This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include <iostream>
#define NMAX 200000
#define ll long long
using namespace std;
int n, k;
ll m, v[NMAX+10], dp[NMAX+10];
int binSearch(ll val)
{	int st = 1, dr = k, ans = 0;
	while(st <= dr)
		{	int mij = (st + dr) / 2;
			if(val > dp[mij]) ans = mij, dr = mij - 1;
			else st = mij + 1;
		}
	return ans;
}
int main()
{
	ios_base::sync_with_stdio(false);
	cin.tie(0);
	cout.tie(0);
	cin >> n >> m;
	for(int i=1; i<=n; i++)
		cin >> v[i];
	k = 0;
	for(int i=1; i<=n; i++)
		{	ll val = v[i] - m * (ll)i;
			if(val > 0) continue;
			if(val <= dp[k])
				{	dp[++k] = val;
					continue;
				}
			int poz = binSearch(val);
			dp[poz] = val;
		}
	cout << n - k << '\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... |