#include <iostream>
using namespace std;
long int
f[101][101], s[101][101], t[101][2], n, ansmin = 2123456789;
void
__read__()
{
cin >> n;
for( int i = 1; i <= n; i++ )
cin >> t[i][0] >> t[i][1];
}
void
__dp__()
{
for( int j = 2; j <= n; j++ )
for( int i = 1; i <= n - j + 1; i++ )
{
f[i][j] = 2123456789;
for( int k = 1; k < j; k++ )
if( f[i][j] > f[i][k] + f[i + k][j - k] + t[i][0] * t[i + k][0] * t[i + j - 1][1] )
f[i][j] = f[i][k] + f[i + k][j - k] + t[i][0] * t[i + k][0] * t[i + j - 1][1];
if( ansmin > f[i][n] && f[i][n] > 0 )
ansmin = f[i][n];
}
}
void
__outp__()
{
cout << ansmin << endl;
}
int
main()
{
__read__();
__dp__();
__outp__();
return 0;
}