Pagini recente » Cod sursa (job #1137408) | Cod sursa (job #2750042) | Cod sursa (job #2540005) | Cod sursa (job #1239480) | Cod sursa (job #812854)
Cod sursa(job #812854)
#include <fstream>
using namespace std;
ifstream intrare ("podm.in");
ofstream iesire ("podm.out");
unsigned long long int n;
unsigned long long int d[505];
unsigned long long int inf;
unsigned long long int nrmin[505][505];
int main()
{
unsigned long long int k, nr, i, j;
//citire
intrare>>n;
for (i=0;i<=n;i++) intrare>>d[i];
inf=1000000000000000000LL;
//pd
//initializare
for (i=1;i<n;i++) nrmin[i][i+1]=d[i-1]*d[i]*d[i+1];
for (nr=3;nr<=n;nr++)
for (i=1;i<=n-nr+1;i++)
{
j=i+nr-1;
//calculez nrmin[i][j]
nrmin[i][j]=inf;
for (k=i;k<j;k++)
if (nrmin[i][j]>nrmin[i][k]+nrmin[k+1][j]+d[i-1]*d[k]*d[j])
{
nrmin[i][j]=nrmin[i][k]+nrmin[k+1][j]+d[i-1]*d[k]*d[j];
nrmin[j][i]=k;
}
}
iesire<<nrmin[1][n]<<'\n';
//afisare (1, n)
return 0;
}