Cod sursa(job #1113420)

Utilizator Becu15Coca Cola Octavian Becu15 Data 20 februarie 2014 16:33:09
Problema Parantezare optima de matrici Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.66 kb
#include <cstdio>
#define MAXN 501
#define INF 100000000000000000ll
using namespace std;

int n;
long long int m[MAXN][MAXN];
int dim[MAXN];

int main()
{
	freopen("podm.in","r",stdin);
	freopen("podm.out","w",stdout);
	scanf("%d",&n);
	for (int i = 0 ; i<=n ; ++i)
			scanf("%d ",&dim[i]);
	int i,lg,j,k;
	long long int temp;
	for (i = 1 ; i <= n ; ++i)
		m[i][i]=0;
	for (lg=2 ; lg<=n ; ++lg) {
		for (i=1 ; i<=n-lg+1 ; ++i) {
			j=i+lg-1;
			m[i][j]=INF;
			for (k=i ; k<j ; ++k) {
				temp = m[i][k] + m[k+1][j] + dim[i-1]*dim[k]*dim[j];
				if (temp < m[i][j]) {
					m[i][j]=temp;
				}
			}
		}
	}
	printf("%LLi",m[1][n]);
	return 0;
}