Pagini recente » Cod sursa (job #504769) | Cod sursa (job #1815854) | Cod sursa (job #2470305) | Cod sursa (job #2648155) | Cod sursa (job #484633)
Cod sursa(job #484633)
#include<fstream>
#include<iostream>
#include<algorithm>
using namespace std;
#define MAXN 512
#define INF (1LL<<62)-1
long long mat[MAXN][MAXN];
int main()
{
int n;
fstream fin("podm.in", fstream::in);
fstream fout("podm.out", fstream::out);
fin>>n;
for(int i=0; i<=n; ++i)
{
fin>>mat[0][i];
}
for(int L=1; L<=n; ++L)
{
for(int i=1; i<=n-L; ++i)
{
const int j=i+L;
mat[i][j]=(1LL<<48)-1;
for(int k=i; k<j; ++k)
{
const long long val=mat[i][k]+mat[j][k+1]+mat[0][i-1]*mat[0][k]*mat[0][j];
//val=mat[i][k]+mat[k+1][j]+mat[0][i-1]*mat[0][k]*mat[0][j];
if(val<mat[i][j])
{
mat[j][i]=mat[i][j]=val;
}
}
}
}
/*for(int i=0; i<=n; ++i)
{
for(int j=0; j<=n; ++j)
{
cout<<mat[i][j]<<" ";
}
cout<<endl;
}*/
cout<<mat[1][n]<<endl;
fin.close();
fout.close();
return 0;
}