Pagini recente » Cod sursa (job #565352) | Cod sursa (job #672907) | Cod sursa (job #725394) | Cod sursa (job #989172) | Cod sursa (job #3155813)
#include <fstream>
using namespace std;
ifstream cin ("podm.in");
ofstream cout ("podm.out");
int main ()
{
int lungime;
cin >> lungime;
int dimensiune[501];
long long inmultiri[501][501];
for (int indice = 0 ; indice <= lungime ; indice++)
{ cin >> dimensiune[indice]; inmultiri[indice][indice] = 0; }
for (int lungime_actuala = 2 ; lungime_actuala <= lungime ; lungime_actuala++)
for (int stanga = 1 , dreapta = lungime_actuala ; dreapta <= lungime ; stanga++ , dreapta++)
{
inmultiri[stanga][dreapta] = 1e18;
for (int intermediar = stanga ; intermediar < dreapta ; intermediar++)
inmultiri[stanga][dreapta] = min(inmultiri[stanga][dreapta] , inmultiri[stanga][intermediar] + inmultiri[intermediar + 1][dreapta] + 1LL * dimensiune[stanga - 1] * dimensiune[intermediar] * dimensiune[dreapta]);
}
cout << inmultiri[1][lungime];
cout.close(); cin.close();
return 0;
}