Pagini recente » Cod sursa (job #2128425) | Cod sursa (job #3215959) | Cod sursa (job #3242672) | Cod sursa (job #2974680) | Cod sursa (job #970735)
Cod sursa(job #970735)
//http://www.infoarena.ro/problema/podm
#include<fstream>
using namespace std;
const int MAXN=502;
const long long INF=(1LL<<60);
long long n,minim,d[MAXN],m[MAXN][MAXN];
void citire()
{
ifstream fin("podm.in");
fin>>n;
for (int i=0;i<=n;++i)
fin>>d[i];
fin.close();
}
void rezolva()
{
for (int i=1;i<=n;++i)
for (int j=1;j<=n;++j)
if (i!=j)
m[i][j]=INF;
for (int nr=2;nr<=n;++nr)
{
for (int i=1;i<=n-nr+1;++i)
{
int j=i+nr-1;
minim=INF;
for (int k=i;k<j;++k)
{
if (m[i][k]+m[k+1][j]+d[i-1]*d[k]*d[j]<minim)
minim=m[i][k]+m[k+1][j]+d[i-1]*d[k]*d[j];
m[i][j]=minim;
}
}
}
}
void afisare()
{
ofstream fout("podm.out");
fout<<m[1][n]<<'\n';
fout.close();
}
int main()
{
citire();
rezolva();
afisare();
return 0;
}