Submission #519123

#TimeUsernameProblemLanguageResultExecution timeMemory
519123blueRabbit Carrot (LMIO19_triusis)C++17
63 / 100
1032 ms2232 KiB
#include <iostream>
#include <vector>
using namespace std;

using vi = vector<int>;

int main()
{
	ios_base::sync_with_stdio(false);
	cin.tie(NULL);

	int N, M;
	cin >> N >> M;

	vi A(1+N);
	A[0] = 0;
	for(int i = 1; i <= N; i++) cin >> A[i];

	vi DP(1+N, 2*N);

	DP[0] = 0;

	int ans = N;

	for(int i = 1; i <= N; i++)
	{
		for(int j = 0; j < i; j++)
		{
			if(A[i] - A[j] <= M * (i - j))
			{
				DP[i] = min(DP[i], DP[j] + (i-1-j));
			}
		}

		ans = min(ans, DP[i] + N-i);

		// cerr << i << " : " << DP[i] << '\n';
	}

	cout << ans << '\n';
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...