Pagini recente » Cod sursa (job #2538259) | Cod sursa (job #229927) | Cod sursa (job #2693908) | Cod sursa (job #1540675) | Cod sursa (job #384571)
Cod sursa(job #384571)
/*
* File: main.cpp
* Author: virtualdemon
*
* Created on January 20, 2010, 2:02 PM
*/
#include <vector>
#include <fstream>
#include <iterator>
#define NMax 510
#define inf 1073741824
/*
*
*/
using namespace std;
typedef unsigned int u;
vector< u > d;
u M[NMax][NMax];
inline u min( u x, u y )
{
return y^( (x^y) & -(x<y) );
}
int main()
{u n, i, j, k;
ifstream in("podm.in");
in>>n;
copy( istream_iterator<u>(in), istream_iterator<u>(), 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;
}