Pagini recente » Cod sursa (job #2618571) | Cod sursa (job #1481115) | Cod sursa (job #501905) | Cod sursa (job #410961) | Cod sursa (job #654991)
Cod sursa(job #654991)
/*
* File: Parantezareoptimadematrici.cpp
* Author: slycer
*
* Created on December 31, 2011, 2:41 PM
*/
#include <cstdlib>
#include <fstream>
#include <iostream>
#include <cmath>
using namespace std;
/*
*
*/
int main(int argc, char** argv) {
ifstream input("podm.in");
ofstream output("podm.out");
int n;
int * data;
int ** dp;
input >> n;
data = new int[n + 1];
dp = new int * [n];
for (int i = 0; i < n; i++) {
dp[i] = new int[n];
}
for (int i = 0; i <= n; i++) {
input >> data[i];
}
for (int i = 1; i < n; i++) {
for (int j = 0; j < n - i; j++) {
int linie = j;
int coloana = j + i;
dp[linie][coloana] = 1<<30;
if (i == 1) {
dp[linie][coloana] = data[linie] * data[linie + 1] * data[linie + 2];
dp[coloana][coloana]=0;
}
for (int k = linie; k < coloana; k++) {
dp[linie][coloana] = min(dp[linie][coloana],
dp[linie][k] + dp[k+1][coloana] + data[linie] * data[k + 1] * data[coloana + 1]
);
}
cout << linie << " " << coloana << " " << dp[linie][coloana] << endl;
}
}
output << dp[0][n - 1];
return 0;
}