Cod sursa(job #2086905)
| Utilizator | Data | 12 decembrie 2017 17:49:20 | |
|---|---|---|---|
| Problema | Parantezare optima de matrici | Scor | 80 |
| Compilator | cpp | Status | done |
| Runda | Arhiva educationala | Marime | 0.57 kb |
#include <iostream>
#include <fstream>
#define MAX 510
#define VMAX 1000000000
using namespace std;
typedef long long ll;
ll n,a[MAX],ans[MAX][MAX];
int main()
{
ifstream f ("podm.in");
ofstream g ("podm.out");
f>>n;
for(int i=1;i<=n+1;i++)f>>a[i];
for(int l=2;l<=n;l++){
for(int i=1;i<=n-l+1;i++){
ll j=i+l-1;
ans[i][j]=VMAX;
for(int k=i;k<j;k++)
ans[i][j]=min(ans[i][j],ans[i][k]+ans[k+1][j]+a[i]*a[k+1]*a[j+1]);
}
}
g<<ans[1][n];
f.close ();
g.close ();
return 0;
}
