Pagini recente » Cod sursa (job #1913730) | Cod sursa (job #553123) | Cod sursa (job #1543692) | Cod sursa (job #1661047) | Cod sursa (job #1828965)
#include<fstream>
#include<vector>
#include<string>
#define NMAX 505
#define INF 100000000000000000LL
using namespace std;
ifstream fin("podm.in");
ofstream fout("podm.out");
string sir;
int i, n, k, j,contor,st,dr,sol,x,y;
long long int A[NMAX], d[NMAX][NMAX];
int main()
{
fin >> n;
for(i = 0; i <= n; i++)
{
fin >> A[i];
}
for(i = 1; i <= n; i++)
{
d[i][i] = 0;
}
for(i = 1; i <= n - 1; i++)
{
//fout << i <<" "<<i+1<<"\n";
d[i][i + 1] = A[i - 1] * A[i] * A[i + 1];
}
for(int diag = 2; diag <= n - 1; diag++)
{
for(i = 1; i + diag <= n; i++)
{
int j = i + diag;
//fout << i <<" "<<j<<"------\n";
d[i][j] = INF;
for(k = i; k < j; k++)
{
//fout << i <<" " <<k<<"---"<<k+1<<" "<<j<<"\n";
d[i][j] = min(d[i][j], d[i][k] + d[k + 1][j] + A[i - 1]*A[k]*A[j]);
}
}
}
for(i = 1; i <= n; i++)
{
for(j = 1; j <= n; j++)
{
//fout << d[i][j] << " ";
}
//fout << "\n";
}
fout << d[1][n]<<"\n";
}