Cod sursa(job #380928)

Utilizator andreea_alexAndreea Alexandru andreea_alex Data 8 ianuarie 2010 08:46:19
Problema Parantezare optima de matrici Scor 10
Compilator cpp Status done
Runda Arhiva educationala Marime 0.57 kb
#include<stdio.h>
#define N 501

int a[N][N],n, v[N];
void citire();
void calcul();

int main()
{
	freopen("podm.in","r",stdin);
	freopen("podm.out","w",stdout);
	citire();
	calcul();
	printf("%d ", a[1][n]);
	return 0;
}

void citire()
{
	scanf("%d ", &n);
	for(int i=0;i<=n;++i)
		scanf("%d ", &v[i]);
}

void calcul()
{
	for(int d=1; d<=n;++d)
		for(int i=1;i<=n-d;++i)
		{
			int j=d+i;
			a[i][j]=1<<30;
			for(int k=1;k<j;++k)
			{
				int soparla=a[i][k]+a[k+1][j]+v[i-1]*v[k]*v[j];
				if(soparla<a[i][j])
					a[i][j]=soparla;
			}
		}
}