행렬 곱셈 순서 2
시간 제한1초메모리 제한512 MB
행렬 N개의 크기가 주어질 때, 순서를 바꾸지 않고 곱하는 데 필요한 곱셈 횟수의 최솟값을 구합니다.
문제
크기가 인 행렬 와 크기가 인 행렬 를 곱하려면 번의 곱셈이 필요하다. 개의 행렬을 곱하는 데 필요한 곱셈 연산의 수는 행렬을 곱하는 순서에 따라 달라진다.
예를 들어 의 크기가 , 의 크기가 , 의 크기가 인 경우에 행렬의 곱 를 구하는 경우를 생각해 보자.
- 를 먼저 곱하고 를 곱하면 에 필요한 곱셈 연산의 수는 번이다.
- 를 먼저 곱하고 를 곱하면 에 필요한 곱셈 연산의 수는 번이다.
같은 곱셈이라도 순서에 따라 곱셈 연산의 수가 달라진다.
행렬 개의 크기가 주어졌을 때, 모든 행렬을 곱하는 데 필요한 곱셈 연산 횟수의 최솟값을 구하는 프로그램을 작성하시오. 입력으로 주어진 행렬의 순서를 바꾸면 안 된다.
입력
첫째 줄에 행렬의 개수 ()이 주어진다.
둘째 줄부터 개 줄에는 행렬의 크기 과 가 주어진다. ()
입력으로는 순서대로 곱셈을 할 수 있는 크기만 주어진다.
출력
첫째 줄에 입력으로 주어진 행렬을 곱하는 데 필요한 곱셈 연산의 최솟값을 출력한다. 정답은 보다 작거나 같은 자연수이다. 최악의 순서로 연산해도 연산 횟수는 보다 작거나 같다.