N = int(input()) matrix_size = [[0,0]] + [list(map(int, input().split())) for _ in range(N)] INF = float("inf") dp = [[INF]*(N+1) for _ in range(N+1)] for i in range(1,N+1) : dp[i][i] = 0 for l in range(2,N+1) : for left in range(1,N) : right = left + l - 1 if right > N : continue if l == 2 : dp[left][right] = matrix_size[left][0]*matrix_size[left][1]*matrix_size[right][1] else : for k in range(left+1, right) : temp = dp[left][k] + dp[k+1][right] + matrix_size[left][0]*matrix_size[k][1]*matrix_size[right][1] dp[left][right] = min(dp[left][right], temp) print(dp[1][N])