Cod sursa(job #2543972)
| Utilizator | Data | 11 februarie 2020 17:52:02 | |
|---|---|---|---|
| Problema | Parantezare optima de matrici | Scor | 100 |
| Compilator | cpp-64 | Status | done |
| Runda | Arhiva educationala | Marime | 0.55 kb |
#include <fstream>
#define f in
#define g out
#define INF 10000000000000LL;
using namespace std;
ifstream in ( "podm.in" );
ofstream out( "podm.out" );
long long i, j, n, k, l;
long long v[510], d[510][510];
int main() {
f>>n; n++;
for ( i=1; i <= n; i++ )
f>>v[i];
for ( l = 3; l <= n; l++ )
for ( i=1; i+l-1 <= n; i++ ){
j = i+l-1;
d[i][j] = INF;
for ( k = i+1; k < j; k++ )
d[i][j] = min ( d[i][j], d[i][k]+d[k][j]+v[i]*v[k]*v[j] );
}
g<<d[1][n];
return 0;
}
