Pagini recente » Cod sursa (job #153422) | Cod sursa (job #114022) | Cod sursa (job #35337) | Cod sursa (job #679994) | Cod sursa (job #589170)
Cod sursa(job #589170)
#include <iostream>
#include <fstream>
using namespace std;
const char iname[] = "podm.in";
const char oname[] = "podm.out";
const int nmax = 100;
ifstream fin(iname);
ofstream fout(oname);
int i, n, linie[nmax], coloana[nmax];
int opt[nmax][nmax], j, k;
int main()
{
fin >> n;
for(i = 1; i <= n; i ++)
fin >> linie[i] >> coloana[i];
for(i = 1; i <= n; i ++)
for(j = 1; j <= n; j ++)
opt[i][j] = 28298982;
for(i = 2; i <= n ;i ++)
opt[i - 1][i] = linie[i - 1] * coloana[i - 1] * coloana[i];
for(i = 1; i <= n; i ++)
opt[i][i] = 0;
for(i = 1; i <= n; i ++)
for(j = i + 1; j <= n; j ++)
for(k = i; k <= j - 1; k ++)
opt[i][j] = min(opt[i][j], opt[i][k] + opt[k + 1][j] + linie[i] * coloana[k] * coloana[j]);
fout << opt[1][n] << "\n";
for(i = 1; i <= n; i ++)
{
for(j = 1; j <= n; j ++)
cout << opt[i][j] << " ";
cout << "\n";
}
return 0;
}