행렬 곱셈
시간 제한2초메모리 제한512 MB
n개의 행렬 각 접두사에 대해 어떤 순서로든 곱셈이 가능한지 판별하고, 가능하면 최종 결과 행렬 넓이의 최댓값을 구한다.
문제
개의 행렬 이 주어진다. 행렬 ()는 개의 행과 개의 열을 가진다 ().
정수 ()에 대해 다음 값 를 계산하려고 한다.
먼저, 개의 행렬 를 모두 곱할 수 있는 순서가 있는지 알아본다. 행렬 곱셈에서 행렬과 행렬을 곱하려면 이어야 하고, 결과는 행렬이다. 개의 행렬을 순서를 자유롭게 재배치하더라도 곱하는 것이 불가능하면 으로 정의한다. 가능하면, 가능한 모든 방법 중 최종 결과 행렬의 크기가 가장 커지는 방법을 찾아, 그때 결과로 나온 행렬의 크기 (행의 수 열의 수)가 값이 된다.
을 구해보자.
입력
첫째 줄에는 자연수 이 주어진다 (). 다음 줄에는 각 줄에 정수 두 개가 주어지는데, 각 행렬의 행의 수 와 열의 수 이다. 각 행렬의 행의 수와 열의 수는 1 이상 1,000 이하이다.
출력
총 줄을 출력해야 하고, 각 줄에는 부터 까지 값을 출력한다.