Cod sursa(job #678760)

Utilizator roots4Irimia Alexandru Gabriel roots4 Data 12 februarie 2012 13:00:46
Problema Parantezare optima de matrici Scor 70
Compilator cpp Status done
Runda Arhiva educationala Marime 0.45 kb
#include<stdio.h>
int n , i , k , j , d , D[510],V[510][510];
int main(){
	freopen("podm.in","r",stdin);
	freopen("podm.out","w",stdout);
	scanf("%d",&n);
	for(i=1;i<=n+1;i++)
		scanf("%d",&D[i]);
	for(d=2;d<=n;d++){
		for(i=1,j=d;j<=n;i++,j++){
			for(k=i;k<=j;k++){
				if((V[i][k]+V[k+1][j]+D[i]*D[k+1]*D[j+1])<V[i][j]||V[i][j]==0){
					V[i][j]=V[i][k]+V[k+1][j]+D[i]*D[k+1]*D[j+1];
				}
			}
		}
	}
	printf("%d",V[1][n]);
	return 0;
}