163482025-04-28 18:15:56algoproJancsi és Juliska kitalálós játékacpp17Hibás válasz 0/100922ms1844 KiB
// UUID: d7917306-b8a2-4e40-b0b0-d48dcf36985d
#include <bits/stdc++.h>
using namespace std;

int main() {
    int n;
	cin >> n;
	vector<vector<int>> dp(n, vector<int>(n, INT_MAX / 2));
	vector<vector<int>> cost(n, vector<int>(n));
	for (int i = 0; i < n; i++)
	{
		cin >> cost[i][i];
	}
	for	(int i = 0; i < n; i++)
	{
		for (int j = i+1; j < n; j++)
		{
			cost[i][j] = max(cost[i][j-1], cost[j][j]);
		}
	}

	for(int h = 0; h < n; h++){
		for(int i = 0; i + h < n; i++){
			int j = i + h;
			if(h == 0){
				dp[i][i] = 0;
				continue;
			}
			if(h == 1){
				dp[i][i + 1] = min(cost[i][i], cost[i + 1][i + 1]);
				continue;
			}
			for(int l = i; l <= j; l++){
				for(int r = l; r <= j; r++){
					dp[i][j] = min(dp[i][j], max(dp[i][max(l - 1, i)], max(dp[l][r], dp[min(r + 1, j)][j])) + cost[l][r]);
				}
			}
		}
	}

	for	(int i = 0; i < n; i++)
	{
		for (int j = 0; j < n; j++)
		{
			cout << dp[i][j] << " ";
		}
		cout << "\n";
	}

	cout << dp[0][n - 1];
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
base0/100
1Hibás válasz0/01ms508 KiB
2Hibás válasz0/0922ms1636 KiB
3Hibás válasz0/41ms316 KiB
4Hibás válasz0/51ms316 KiB
5Hibás válasz0/51ms316 KiB
6Hibás válasz0/51ms316 KiB
7Hibás válasz0/514ms480 KiB
8Hibás válasz0/514ms564 KiB
9Hibás válasz0/535ms564 KiB
10Hibás válasz0/548ms560 KiB
11Hibás válasz0/561ms584 KiB
12Hibás válasz0/5123ms920 KiB
13Hibás válasz0/5166ms948 KiB
14Hibás válasz0/5185ms976 KiB
15Hibás válasz0/5439ms1332 KiB
16Hibás válasz0/5515ms1464 KiB
17Hibás válasz0/5606ms1332 KiB
18Hibás válasz0/5688ms1552 KiB
19Hibás válasz0/5791ms1588 KiB
20Hibás válasz0/5922ms1844 KiB
21Hibás válasz0/5921ms1640 KiB
22Hibás válasz0/6922ms1844 KiB