Pagini recente » Cod sursa (job #1833733) | Monitorul de evaluare | Cod sursa (job #626090) | Cod sursa (job #805212) | Cod sursa (job #3315086)
#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;
}