Pagini recente » Cod sursa (job #3240075) | Cod sursa (job #1287086) | Cod sursa (job #923822) | Cod sursa (job #3227401) | Cod sursa (job #809537)
Cod sursa(job #809537)
#include <fstream>
using namespace std;
const int N = 505;
long long a[N][N], d[N];
int n;
ifstream in("podm.in");
ofstream out("podm.out");
inline long long min(long long a, long long b){
return a < b ? a : b;
}
long long cost(int x, int y, int z){
return a[x][y] + a[y + 1][z] + d[x] * d[y + 1] * d[z + 1];
}
void read(){
in >> n;
for (int i = 1 ; i <= n + 1 ; i++)
in >> d[i];
}
long long compute(){
for (int i = n ; i ; i--)
for (int j = i + 1 ; j <= n ; j++){
a[i][j] = cost(i, i, j);
for (int k = i + 1 ; k < j ; k++)
a[i][j] = min(a[i][j], cost(i, k, j));
}
return a[1][n];
}
int main(){
read();
out << compute() << "\n";
return 0;
}