Pagini recente » Cod sursa (job #2720202) | Cod sursa (job #3264051) | Cod sursa (job #175401) | Cod sursa (job #331915) | Cod sursa (job #660812)
Cod sursa(job #660812)
#include <fstream>
using namespace std;
ifstream fin ("parantezare.in");
ofstream fout ("parantezare.out");
long long n, i, j, nr, d[101], nrmin[101][101], inf=1, cost, k;
void afisare_optim() {
}
int main () {
fin>>n;
for (i=0; i<=n; i++) fin>>d[i], inf*=d[i];
for (i=1; i<n; i++) nrmin[i][i+1]=d[i-1]*d[i]*d[i+1];
for (nr=3; nr<=n; nr++)
for (i=1; i<=n-nr+1; i++) {
j=i+nr-1;
nrmin[i][j]=inf;
for (k=i; k<j; k++)
if (nrmin[i][j]>nrmin[i][k]+nrmin[k+1][j]+d[i-1]*d[k]*d[j]) {
nrmin[i][j]=nrmin[i][k]+nrmin[k+1][j]+d[i-1]*d[k]*d[j];
nrmin[j][i]=k;
}
}
fout<<nrmin[1][n]<<'\n';
afisare_optim ();
fout.close();
return 0;
}