Submission #400227

# Submission time Handle Problem Language Result Execution time Memory
400227 2021-05-07T17:34:36 Z kgh3620 Skyline (IZhO11_skyline) C++17
0 / 100
31 ms 49804 KB
#include <map>
#include <set>
#include <list>
#include <cmath>
#include <ctime>
#include <deque>
#include <queue>
#include <stack>
#include <bitset>
#include <cstdio>
#include <limits>
#include <vector>
#include <cstdlib>
#include <numeric>
#include <sstream>
#include <iostream>
#include <algorithm>
#include <functional> 
#include <iomanip>
#include <unordered_map>
#include <memory.h>
#include <unordered_set>
#include <fstream>
#include <random>

using namespace std;

int h[301];
int dp[305][205][205];

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

	int n;

	cin >> n;

	for (int i = 0; i < n; i++)
	{
		cin >> h[i];
	}

	for(int i=0;i<=300;i++)
	{
		for (int j = 0; j <= 200; j++)
		{
			for (int k = 0; k <= 200; k++)
			{
				dp[i][j][k] = 1e9;
			}
		}
	}

	dp[0][0][0] = 0;

	for (int i = 0; i < n; i++)
	{
		for (int j = 0; j <= 200; j++)
		{
			for (int k = 0; k <= 200; k++)
			{
				if (dp[i][j][k] >= 1e9)
				{
					continue;
				}
				int a = j;
				int b = k;
				int c = h[i];
				int m = min(a, min(b, c));
				int cost = 7 * m + (a - m) * 3;
				dp[i + 1][b - m][c - m] = min(dp[i + 1][b - m][c - m], dp[i][a][b] + cost);
				m = min(a, b);
				cost = 5 * m + (a - m) * 3;
				dp[i + 1][b - m][c] = min(dp[i + 1][b - m][c], dp[i][a][b] + cost);
				cost = 3 * a;
				dp[i + 1][b][c] = min(dp[i + 1][b][c], dp[i][a][b] + cost);
			}
		}
	}

	int res = 1e9;

	for (int i = 0; i <= 200; i++)
	{
		for (int j = 0; j <= 200; j++)
		{
			if (dp[n][i][j] >= 1e9)
			{
				continue;
			}
			int m = min(i, j);
			int cost = dp[n][i][j] + 5 * m + (i - m) * 3 + (j - m) * 3;
			res = min(res, cost);
		}
	}
	cout << res << '\n';

	return 0;
}
# Verdict Execution time Memory Grader output
1 Correct 27 ms 49732 KB Output is correct
2 Correct 26 ms 49760 KB Output is correct
3 Correct 27 ms 49728 KB Output is correct
4 Correct 31 ms 49740 KB Output is correct
5 Correct 27 ms 49756 KB Output is correct
6 Incorrect 27 ms 49804 KB Output isn't correct
7 Halted 0 ms 0 KB -