Cod sursa(job #2232338)

Utilizator shantih1Alex S Hill shantih1 Data 18 august 2018 17:39:47
Problema Parantezare optima de matrici Scor 70
Compilator cpp Status done
Runda Arhiva educationala Marime 0.67 kb
#include <iostream>
#include <fstream>

using namespace std;
ifstream fin("podm.in");
ofstream fout("podm.out");

int n,i,j,k,nr,l,M[505][505];
struct dim
{	int x, y;	} d[505][505];

int main () {
	
	fin>>n;
	fin>>j;
	for(i=1;i<=n;i++)
	{
		fin>>k;
		d[i][i].x=j;
		d[i][i].y=k;
		j=k;
	}
	
	for(k=2;k<=n;k++)
		for(i=1;i<=n-k+1;i++)
		{
			l=i+k-1;
			M[i][l]=M[i][i]+M[i+1][l]+d[i][i].x*d[i][i].y*d[i+1][l].y;
			d[i][l].x=d[i][i].x;
			d[i][l].y=d[i+1][l].y;
			
			for(j=i+1;j<l;j++)
			{
				nr=M[i][j]+M[j+1][l]+d[i][j].x*d[i][j].y*d[j+1][l].y;
				if(nr<M[i][l])
				{
					M[i][l]=nr;
					d[i][l].x=d[i][j].x;
					d[i][l].y=d[j+1][l].y;
				}
			}
		}
	
	fout<<M[1][n]<<"\n";
}