제출 #1323478

#제출 시각아이디문제언어결과실행 시간메모리
1323478Jawad_Akbar_JJSkyline (IZhO11_skyline)C++20
100 / 100
90 ms111452 KiB
#include <iostream>

using namespace std;
const int N = 305;
int dp[N][N][N], a[N];

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

	int n, M = 200;
	cin>>n;

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

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

	for (int i=1;i<=n;i++){
		for (int A=0;A<=a[i];A++){
			for (int B=A;B<=a[i];B++)
				dp[i][B - A][a[i] - A] = min(dp[i][B - A][a[i] - A], dp[i-1][A][B] + 7 * A);
		}

		for (int A=M;A>=0;A--){
			for (int B=M;B>=0;B--)
				dp[i][A][B] = min(dp[i][A][B], dp[i][A+1][B+1] + 5);
		}
		for (int A=M;A>=0;A--){
			for (int B=M;B>=0;B--)
				dp[i][A][B] = min(dp[i][A][B], dp[i][A][B+1] + 3);
		}
	}

	cout<<dp[n][0][0]<<'\n';
}
#Verdict Execution timeMemoryGrader output
Fetching results...