Pagini recente » Cod sursa (job #309314) | Cod sursa (job #2223330) | Cod sursa (job #2683260) | Cod sursa (job #425972) | Cod sursa (job #384573)
Cod sursa(job #384573)
/*
* File: main.cpp
* Author: virtualdemon
*
* Created on January 20, 2010, 2:02 PM
*/
#include <vector>
#include <fstream>
#include <iterator>
#define NMax 510
/*
*
*/
using namespace std;
typedef unsigned long long llu;
vector< llu > d;
llu M[NMax][NMax];
const llu inf=(llu)1<<60;
inline llu min( llu x, llu y )
{
return y^( (x^y) & -(x<y) );
}
int main()
{llu n, i, j, k;
ifstream in("podm.in");
in>>n;
copy( istream_iterator<llu>(in), istream_iterator<llu>(), back_inserter(d) );
for( i=n-1; i > 0; --i )
{
M[i][i]=0;
M[i][i+1]=d[i-1]*d[i]*d[i+1];
for( j=i+2; j <= n; ++j )
{
M[i][j]=inf;
for( k=i; k < j; ++k )
M[i][j]=min( M[i][j], M[i][k]+M[k+1][j]+d[i-1]*d[k]*d[j] );
}
}
ofstream out("podm.out");
out<<M[1][n];
return 0;
}