Submission #370291

#TimeUsernameProblemLanguageResultExecution timeMemory
370291MagiRabbit Carrot (LMIO19_triusis)C++14
0 / 100
1 ms384 KiB
#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 timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...