Pagini recente » Clasament de_ce_sa_ne_certam_iubi | Cod sursa (job #2540540) | Cod sursa (job #1594733) | Cod sursa (job #2235277) | Cod sursa (job #1032941)
#include <fstream>
using namespace::std;
#define inFile "podm.in"
#define outFile "podm.out"
#define min(a,b) (a>b?b:a)
int n, d[501], C[500][500];
void Citire() {
ifstream f(inFile);
f >> n;
for(int i = 0; i <= n; i++) {
f >> d[i];
}
f.close();
}
void Solve() {
int i, j, k, pas;
for(int i = 1; i < n; i++) {
C[i][i+1] = d[i-1] * d[i] * d[i+1];
}
for(pas = 2; pas < n; pas ++) {
for(i = 1; i <= n-pas; i++) {
j = i+pas;
C[i][j] = 209999999;
for(k = i; k < j; k++) {
C[i][j] = min( C[i][j], C[i][k] + C[k+1][j] + d[i-1]*d[k]*d[j] );
}
}
}
}
int main() {
Citire();
Solve();
ofstream g(outFile);
g << C[1][n] << '\n';
g.close();
return 0;
}