Submission #53389

# Submission time Handle Problem Language Result Execution time Memory
53389 2018-06-29T16:32:43 Z MatheusLealV K blocks (IZhO14_blocks) C++17
0 / 100
82 ms 86884 KB
#include <bits/stdc++.h>
#define N 100010
#define K 110
#define inf 200000000000000000LL
#define f first
#define s second
using namespace std;
typedef long long ll;
typedef pair<ll, ll> pii;

ll n, k, v[N], dp[N][K], maior;

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;

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

		dp[i][1] = maior;
	}

	for(int q = 2; q <= k; q++)
	{
		stack < pii > W;

		for(int i = 1; i <= n; i++)
		{
			ll opt = dp[i - 1][q - 1];

			while(!W.empty() and W.top().f < v[i])
			{
				opt = min(opt, W.top().s);

				W.pop();
			}

			if(W.empty() or opt + v[i] < W.top().f + W.top().s) W.push({v[i], opt});

			if(i >= k) dp[i][k] = W.top().f + W.top().s;
		}
	}

	cout<<dp[n][k]<<'\n';
}
# Verdict Execution time Memory Grader output
1 Correct 65 ms 86392 KB Output is correct
2 Correct 63 ms 86628 KB Output is correct
3 Correct 61 ms 86628 KB Output is correct
4 Correct 70 ms 86740 KB Output is correct
5 Correct 63 ms 86740 KB Output is correct
6 Correct 61 ms 86740 KB Output is correct
7 Correct 61 ms 86740 KB Output is correct
8 Correct 62 ms 86740 KB Output is correct
9 Incorrect 65 ms 86740 KB Output isn't correct
10 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 61 ms 86740 KB Output is correct
2 Correct 68 ms 86740 KB Output is correct
3 Correct 66 ms 86740 KB Output is correct
4 Correct 71 ms 86740 KB Output is correct
5 Correct 62 ms 86740 KB Output is correct
6 Correct 70 ms 86740 KB Output is correct
7 Correct 69 ms 86740 KB Output is correct
8 Correct 65 ms 86740 KB Output is correct
9 Incorrect 82 ms 86740 KB Output isn't correct
10 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Incorrect 70 ms 86884 KB Output isn't correct
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Incorrect 71 ms 86884 KB Output isn't correct
2 Halted 0 ms 0 KB -