Pagini recente » Cod sursa (job #43211) | Borderou de evaluare (job #2906742) | Borderou de evaluare (job #1799265) | Borderou de evaluare (job #856787) | Cod sursa (job #2501478)
#include <iostream>
#include <fstream>
#include <map>
#include <vector>
#define NMAX 502
#define MOD 1000000007
//#define f cin
using namespace std;
ifstream f("podm.in");
ofstream g("podm.out");
int dp[NMAX][NMAX];
struct Matrice {
int lin, col;
}m[NMAX];
int n;
int main() {
f >> n;
f >> m[0].lin;
for (int i = 0; i < n; ++i) {
f >> m[i].col;
m[i + 1].lin = m[i].col;
}
for (int dist = 1; dist < n; ++dist) {
for (int i = 0; i + dist < n; ++i) {
int vmin = 1e9;
for (int k = i; k < i + dist; ++k) {
vmin = min(vmin, dp[i][k] + dp[k + 1][i + dist] + m[i].lin * m[k].col * m[i + dist].col);
}
dp[i][i + dist] = vmin;
}
}
g << dp[0][n - 1];
return 0;
}