Pagini recente » Cod sursa (job #6387) | Cod sursa (job #1287597) | Cod sursa (job #3258442) | Cod sursa (job #822611) | Cod sursa (job #1919887)
#include <fstream>
#include <climits>
using namespace std;
ifstream f("podm.in");
ofstream g("podm.out");
struct MATRICE{
int l, c;
}V[501];
long long D[501][501];
long long DP(int i, int j){
if( i == j )
return 0;
if( D[i][j] != 0 )
return D[i][j];
int k;
long long aux, min;
min = INT_MAX;
for( k = i + 1; k <= j; k++ )
if( V[k-1].c == V[k].l ){
aux = DP(i,k-1) + DP(k,j) + V[i].l * V[k-1].c * V[j].c;
if( aux < min )
min = aux;
}
D[i][j] = min;
return min;
}
int main()
{
int n, i, l, c;
f >> n;
f >> l;
for(i = 1; i <= n; i++){
f >> c;
V[i].l = l;
V[i].c = c;
l = c;
}
g << DP(1,n);
return 0;
}