Pagini recente » Cod sursa (job #1860832) | Cod sursa (job #653830) | Cod sursa (job #2688308) | Cod sursa (job #2531238) | Cod sursa (job #2346748)
#include <iostream>
#include <fstream>
#define NMAX 505
using namespace std;
ifstream fi("podm.in");
ofstream fo("podm.out");
pair<int, int> bounds[NMAX];
int N;
int Q[NMAX][NMAX];
int main()
{
int curr, previous;
fi >> N;
fi >> previous;
for(int i = 1; i <= N; ++i)
{
fi >> curr;
bounds[i] = {previous, curr};
previous = curr;
}
for(int i = 1; i <= N; ++i)
for(int j = 1; j <= N; ++j)
if(i == j)
Q[i][j] = 0;
else
Q[i][j] = 0x3f3f3f3f;
for(int i = N; i >= 1; --i)
for(int j = i; j <= N; ++j)
for(int k = i; k <= j-1; ++k)
Q[i][j] = min(Q[i][j], Q[i][k] + Q[k+1][j] + (bounds[i].first * bounds[k].second * bounds[j].second));
fo << Q[1][N];
}