Cod sursa(job #3315086)

Utilizator CosminaneBoac Mihai Cosmin Cosminane Data 12 octombrie 2025 12:23:24
Problema Parantezare optima de matrici Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.7 kb
#include <fstream>
#include <iostream>
#include <vector>
using namespace std;
long long dp[505][505];
vector <int> v;
int main(){
	int n, i, j, k, x;
	ifstream fin( "podm.in" );
	ofstream fout( "podm.out" );
	fin >> n;
	n++;
	for( i = 0; i < n; i++ ){
		fin >> x;
		v.push_back( x );
		for( j = i + 2; j < n; j++ ){
			dp[i][j] = INT64_MAX / 3;
		}
	}
	for( i = n - 3; i >= 0; i-- ){
		for( j = i + 2; j < n; j++ ){
			for( k = i + 1; k <= j - 1; k++ ){
				dp[i][j] = min( dp[i][k] + dp[k][j] + 1ll * v[i] * v[k] * v[j], dp[i][j] );
				//cout << i << ' ' << j << ' ' << k << ' ' << dp[i][j] << ' ' << dp[i][k] << ' ' << dp[k][j] << '\n';
			}
		}
	}
	fout << dp[0][n - 1];
	return 0;
}