Submission #238064

# Submission time Handle Problem Language Result Execution time Memory
238064 2020-06-09T21:24:56 Z luciocf K blocks (IZhO14_blocks) C++14
0 / 100
10 ms 4608 KB
#include <bits/stdc++.h>

#define ff first
#define ss second

using namespace std;

typedef pair<int, int> pii;

const int maxn = 1e5+10;
const int maxk = 110;
const int inf = 1e9+10;

int n, k;
int a[maxn];

int mn[maxk];

int dp[maxn][maxk];

int main(void)
{
	scanf("%d %d", &n, &k);

	for (int i = 1; i <= n; i++)
		scanf("%d", &a[i]);

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

	stack<pii> stk;

	for (int i = 2; i <= k; i++)
		mn[i] = inf;

	for (int i = 1; i <= n; i++)
	{
		for (int j = 2; j <= min(k, i); j++)
		{
			while (stk.size() && stk.top().ff <= a[i])
			{
				mn[j] = min(mn[j], dp[stk.top().ss][j-1]);
				stk.pop();
			}

			stk.push({a[i], i});
			mn[j] = min(mn[j], dp[i-1][j-1]);

			if (a[i] <= a[i-1]) dp[i][j] = min(a[i]+mn[j], dp[i-1][j]);
			else dp[i][j] = a[i]+mn[j];
		}
	}

	printf("%d\n", dp[n][k]);
}

Compilation message

blocks.cpp: In function 'int main()':
blocks.cpp:23:7: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
  scanf("%d %d", &n, &k);
  ~~~~~^~~~~~~~~~~~~~~~~
blocks.cpp:26:8: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
   scanf("%d", &a[i]);
   ~~~~~^~~~~~~~~~~~~
# Verdict Execution time Memory Grader output
1 Correct 5 ms 384 KB Output is correct
2 Correct 5 ms 384 KB Output is correct
3 Correct 5 ms 384 KB Output is correct
4 Correct 5 ms 384 KB Output is correct
5 Incorrect 5 ms 384 KB Output isn't correct
6 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 4 ms 384 KB Output is correct
2 Correct 4 ms 384 KB Output is correct
3 Correct 4 ms 384 KB Output is correct
4 Correct 5 ms 384 KB Output is correct
5 Incorrect 4 ms 384 KB Output isn't correct
6 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Incorrect 5 ms 384 KB Output isn't correct
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Incorrect 10 ms 4608 KB Output isn't correct
2 Halted 0 ms 0 KB -