Pagini recente » Cod sursa (job #12786) | Cod sursa (job #670319) | Cod sursa (job #480252) | Cod sursa (job #237144) | Cod sursa (job #1023322)
#include <fstream>
#include <algorithm>
#define INF 100000000000000000LL
using namespace std;
unsigned long long int A[505][505];
unsigned long long d[500];
int n;
void citire(){
ifstream f("podm.in");
f>>n;
for(int i=0;i<=n;++i)
f>>d[i];
f.close();
}
void calculare_minim(int i,int j){
for(int k=i;k<j;++k){
A[i][j]=min(A[i][j],A[i][k]+A[k+1][j]+d[i-1]*d[k]*d[j]);
//unsigned long long int rez=A[i][k]+A[k+1][j]+d[i-1]*d[k]*d[j];
//if(!A[i][j] || rez<A[i][j]){
//A[j][i]=k;
//A[i][j]=rez;
}
}
void rezolvare(){
for(int contor=2;contor<=n;++contor)
for(int i=1,j=contor;j<=n;++i,++j)
{
A[i][j]=INF;
calculare_minim(i,j);
}
}
int main()
{
citire();
rezolvare();
ofstream fout("podm.out");
fout<<A[1][n];
fout.close();
return 0;
}