행렬 곱셈 계산기
시간 제한2초메모리 제한512 MB
행렬 두 개와 각 행렬의 크기를 여러 테스트 케이스로 입력받아, 안쪽 차원이 맞으면 곱셈 결과를 각 행을 세로 막대로 감싸 출력하고 맞지 않으면 undefined를 출력한다.
문제
행렬 곱셈은 선형대수학의 기본 연산으로, 수학의 각 분야와 응용수학, 컴퓨터 그래픽스, 물리학, 공학에서 널리 쓰인다.
두 행렬은 차원이 맞아떨어질 때에만 곱할 수 있다. 즉, 첫 번째 행렬의 열 개수가 두 번째 행렬의 행 개수와 같아야 한다.
가 행렬이고 가 행렬이면, 곱 는 행렬이다. 곱 는 다음과 같이 정의되는 행렬 이다.
두 행렬을 곱한 결과를 출력하는 계산기를 만들어라. 두 행렬을 곱할 수 없으면 undefined를 출력한다.
입력
입력은 여러 개의 테스트 케이스로 이루어진다. 각 테스트 케이스의 첫 줄에는 4개의 양의 정수 가 주어진다 (). 과 은 행렬 의 크기, 와 는 행렬 의 크기이다. 이어서 줄에 행렬 의 원소가, 그 다음 줄에 행렬 의 원소가 주어진다. 각 행에는 해당 행의 원소들이 공백 하나로 구분되어 주어진다. 가 모두 이면 입력의 끝이며, 이 줄은 처리하지 않는다.
출력
각 테스트 케이스마다 첫 줄에 Case #x:를 출력한다. 여기서 는 부터 시작하는 케이스 번호이다. 다음 줄부터 행렬 곱셈 결과를 출력한다. 곱할 수 있는 경우에는 결과 행렬의 각 행을 |로 감싸서 | 원소들 | 형태로 한 줄에 하나씩 출력하며, 원소 사이에는 공백 하나를 둔다. 곱할 수 없는 경우에는 undefined 한 줄을 출력한다.