Pagini recente » Cod sursa (job #1610230) | Cod sursa (job #2764849) | Cod sursa (job #1188456) | Cod sursa (job #1560993) | Cod sursa (job #2922360)
#include <fstream>
#include <vector>
#include <limits>
typedef unsigned long long ULL;
const ULL ULLINF = std::numeric_limits<ULL>::max();
int main(){
std::ifstream fin("podm.in");
std::ofstream fout("podm.out");
unsigned n; fin>>n;
std::vector<ULL> p(n+1);
std::vector< std::vector<ULL> > m(n+1,std::vector<ULL>(n+1));
for(unsigned i=0;i<=n;++i) fin>>p[i];
for(unsigned i=1;i<=n;++i) m[i][i]=0;
for(unsigned l=2;l<=n;++l)
for(unsigned i=1;i<=n-l+1;++i){
unsigned j=i+l-1;
m[i][j] = ULLINF;
for(unsigned k=i;k<j;++k){
ULL q = m[i][k] + m[k+1][j] + p[i-1]*p[k]*p[j];
if(q<m[i][j]) m[i][j]=q;
}
}
fout<<m[1][n]<<'\n';
}