Pagini recente » Cod sursa (job #1897932) | Cod sursa (job #132700) | Cod sursa (job #3140632) | Cod sursa (job #676632) | Cod sursa (job #1941953)
#include<bits/stdc++.h>
#define oo 0x3f3f3f3f
#define ll long long
using namespace std;
//variables
const int N_MAX = 510;
long long arr[N_MAX], n, mat[N_MAX][N_MAX];
//--end variables
void read();
void solve();
void print();
int main()
{
read(); solve(); print();
return 0;
}
void read()
{
FILE *in = fopen("podm.in", "r");
fscanf(in, "%d", &n);
for(int i = 0; i <= n; i ++)
fscanf(in, "%d", &arr[i]);
}
void solve()
{
for(int i = 1; i <= n; i ++)
for(int j = 1; j <= n; j ++)
{
if( i > j ) mat[i][j] = -1;
mat[i][i] = 0;
}
ll a, b;
for(int step = 1; step <= n; step ++)
{
a = 1;
b = step + 1;
while( b <= n && a < n )
{
ll minim = oo;
for(int k = a; k < b; k ++)
minim = min( minim, mat[a][k] + mat[k+1][b] + arr[a-1] * arr[k] * arr[b] );
mat[a][b] = minim;
a ++; b ++;
}
}
}
void print()
{
FILE *out = fopen("podm.out", "w");
fprintf(out, "%d", mat[1][n]);
}