Cod sursa(job #3030933)

Utilizator thinkphpAdrian Statescu thinkphp Data 18 martie 2023 00:01:22
Problema Parantezare optima de matrici Scor 100
Compilator c-64 Status done
Runda Arhiva educationala Marime 0.7 kb
#include <stdio.h>
#define fin "podm.in"
#define fout "podm.out"

#define LL long long
#define MAX 503
#define inf 666666666666666LL
#define min(x, y) (((x) < (y)) ? (x) : (y))

LL best[MAX][MAX];
int n, d[MAX];

void read() {
	 freopen(fin, "r", stdin);
	 scanf("%d", &n);
	 for(int i = 1; i <= n+1; ++i) scanf("%d", &d[i]); 	 	
}

void solve() {

     int i,j,k;
     LL nr;
     freopen(fout, "w", stdout);
    
     for (i=1; i<n; i++)
		for (j=1; j<=n-i; j++)
		{
			nr=inf;
			for (k=j; k<j+i; k++)
				nr=min(nr,best[j][k]+best[k+1][j+i]+(LL)d[j]*d[k+1]*d[j+i+1]);
			best[j][j+i]=nr;
		}
     

printf("%lld\n", best[1][n]);
}

int main(int argc, char const *argv[])
{
	read();
	solve();		
	return 0;
}