Pagini recente » Cod sursa (job #3178934) | Cod sursa (job #2058691) | Cod sursa (job #798175) | Cod sursa (job #2716729) | Cod sursa (job #1495623)
///Parantezare optima de matrici
///http://www.infoarena.ro/problema/podm
///http://algopedia.ro/wiki/index.php/Clasele_9-10_lec%C8%9Bia_2_-_25_sep_2015
#include <fstream>
using namespace std;
const int MAX=500;
#define INF 1000000000000000
long long C[MAX+1][MAX+1],V[MAX];
ifstream in("podm.in");
ofstream out("podm.out");
int main()
{
int n;
in>>n;
for(int i=0; i<=n; i++) in>>V[i];
for(int i=1; i<=n-1; i++) C[i][i+1]=V[i-1]*V[i]*V[i+1];
for(int i=2; i<=n-1; i++)
for(int j=1; j<=n-i; j++)
{
int x = i+j;
C[j][x]=INF;
for(int k=j;k<=x-1;k++)
C[j][x]=min(C[j][x],C[j][k]+C[k+1][x]+V[j-1]*V[k]*V[x]);
}
out<<C[1][n];
return 0;
}