Cod sursa(job #2345614)
| Utilizator | Data | 16 februarie 2019 15:22:14 | |
|---|---|---|---|
| Problema | Parantezare optima de matrici | Scor | 100 |
| Compilator | cpp-64 | Status | done |
| Runda | Arhiva educationala | Marime | 0.57 kb |
#include<fstream>
using namespace std;
ifstream fi("podm.in");
ofstream fo("podm.out");
long long n,l,L[505],C[505],i,j,k,Dp[505][505];
int main()
{
fi>>n;
fi>>l;
for(i=1; i<=n; i++)
{
fi>>C[i];
L[i]=l;
l=C[i];
}
for(i=n-1; i>=1; i--)
for(j=i+1; j<=n; j++)
{
Dp[i][j]=1000000000000000000LL;
for(k=i; k<j; k++)
Dp[i][j]=min(Dp[i][j],Dp[i][k]+Dp[k+1][j]+L[i]*C[k]*C[j]);
}
fo<<Dp[1][n]<<"\n";
fi.close();
fo.close();
return 0;
}
