Submission #53360

# Submission time Handle Problem Language Result Execution time Memory
53360 2018-06-29T15:08:27 Z MatheusLealV K blocks (IZhO14_blocks) C++17
0 / 100
48 ms 47980 KB
#include <bits/stdc++.h>
#define N 100010
#define K 110
#define inf 2000000000
using namespace std;

int n, k, v[N], pref[N], dp[N][K], best[N][K];

int main()
{
	ios::sync_with_stdio(false); cin.tie(0);

	cin>>n>>k;

	for(int i = 1; i <= n; i++) cin>>v[i];

	for(int i = 0; i < N; i++)
		for(int j = 0; j < K; j++)
			dp[i][j] = inf;

	dp[0][1] = 0;

	for(int i = 1; i <= n; i++)
	{
		dp[i][1] = max(dp[i - 1][1], v[i]);

		best[i][1] = dp[i][1];

		pref[i] = pref[i - 1] + v[i];
	}

	for(int q = 2; q <= k; q++)
	{
		for(int i = 1; i <= n; i++)
		{
			if(i < q) dp[i][q] = inf;

			if(i == q)
			{
				dp[i][q] = pref[i];

				best[i][q] = v[i];

				continue;
			}

			int A = dp[i - 1][q] + max(v[i] - best[i - 1][q], 0);

			int B = dp[i - 1][q - 1] + v[i];

			if(A <= B) best[i][q] = max(v[i], best[i - 1][q]);

			else best[i][q] = v[i];

			dp[i][q] = min(A, B);
		}
	}

	cout<<dp[n][k]<<'\n';
}
# Verdict Execution time Memory Grader output
1 Correct 35 ms 43384 KB Output is correct
2 Correct 34 ms 43496 KB Output is correct
3 Correct 34 ms 43496 KB Output is correct
4 Correct 34 ms 43496 KB Output is correct
5 Correct 34 ms 43496 KB Output is correct
6 Correct 34 ms 43496 KB Output is correct
7 Correct 48 ms 43520 KB Output is correct
8 Correct 41 ms 43700 KB Output is correct
9 Correct 36 ms 43700 KB Output is correct
10 Correct 34 ms 43700 KB Output is correct
11 Incorrect 48 ms 43732 KB Output isn't correct
12 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 39 ms 43732 KB Output is correct
2 Correct 35 ms 43732 KB Output is correct
3 Correct 38 ms 43732 KB Output is correct
4 Correct 34 ms 43732 KB Output is correct
5 Correct 35 ms 43732 KB Output is correct
6 Correct 35 ms 43732 KB Output is correct
7 Correct 47 ms 43732 KB Output is correct
8 Correct 36 ms 43792 KB Output is correct
9 Correct 40 ms 43792 KB Output is correct
10 Correct 34 ms 43792 KB Output is correct
11 Incorrect 35 ms 43792 KB Output isn't correct
12 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Incorrect 34 ms 43792 KB Output isn't correct
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Incorrect 43 ms 47980 KB Output isn't correct
2 Halted 0 ms 0 KB -