Cod sursa(job #1289025)

Utilizator MihneaGhiraMihnea MihneaGhira Data 9 decembrie 2014 13:06:35
Problema Parantezare optima de matrici Scor 70
Compilator cpp Status done
Runda Arhiva educationala Marime 0.63 kb
#include<fstream>
#define INF 2000000000
using namespace std;
ifstream fin("podm.in");
ofstream fout("podm.out");

int n,i,j,k,d;
long long D[501][501],v[501];

int min(int a,int k,int i,int j){
    int S;
    S=D[i][k]+D[k][j]+v[i]*v[k]*v[j];
    if(a>S)
        return S;
    else
        return a;
}
int main(){
    fin>>n;
    n++;
    for(i=1;i<=n;i++)
        fin>>v[i];
    for(d=2;d<=n-1;d++){
        for(i=1;i+d<=n;i++){
            j=i+d;
            D[i][j]=INF;
            for(k=i+1;k<j;k++){
                D[i][j]=min(D[i][j],k,i,j);
            }
        }
    }
    fout<<D[1][n];
    return 0;
}