Pagini recente » Monitorul de evaluare | Cod sursa (job #1729767) | Cod sursa (job #1743562) | Diferente pentru problema/rubarba intre reviziile 2 si 1 | Cod sursa (job #2077703)
#include <fstream>
#define INF 100000000000
using namespace std;
ifstream fin ("podm.in");
ofstream fout("podm.out");
long long n, i, j, L, d[502][502],k,v[502];
/// d[i][j] = costul minim sa reduc secventa de la i la j doar la elementele i si j
int main ()
{
fin>>n;
for(i=1;i<=n+1;i++)
fin>>v[i];
for (i=1;i<=n+1;i++)
for (j=i+2;j<=n+1;j++)
d[i][j]=INF;
/// secvente doar din 2 elemente deci deja reduse
for (L = 3; L<=n+1; L++) {
/// calculez costul reducerii oricareisecvente de lungime L la capetele ei
for (i=1;i+L-1 <= n+1; i++) {
j = i+L-1;
/// calculez d[i][j]
for (k=i+1;k<=j-1;k++) {
d[i][j] = min(d[i][j], v[i] * v[k] * v[j] + d[i][k] + d[k][j]);
}
}
}
fout<<d[1][n+1];
return 0;
}