만드는 중입니다

아직 만드는 중이라 바뀔 수 있습니다

고등수학 수업

시간 제한2초메모리 제한512 MB

요약
정수 행렬 A가 주어졌을 때, LAR이 대각행렬이 되고 대각 원소가 앞 원소의 배수이며 0이 뒤쪽에만 오도록 가역 정수 행렬 L과 R을 구합니다.
난이도

보통10점 중 7점

유형
행렬, 정수론, 구현
정답자
아직 제출이 없습니다

문제

헨리는 National Search University of This and That의 지루한 고등수학 수업 시간에 졸고 있다. 그러다 선생님이 다음 문제를 풀라고 시키자 갑자기 깨어난다. 정수로 이루어진 n×nn \times n 행렬 AA가 주어지면, 헨리는 다음 조건을 만족하는 가역 정수행렬 LL과 RR을 찾아야 한다.

  • B=LARB = LAR은 대각행렬이다.
  • bi,i=0b_{i,i}=0이 되는 것은 i>ji > j인 경우에만 성립하도록 하는 jj (0≤j≤n0 \le j \le n)가 존재한다.
  • 22 이상 jj 이하의 모든 ii에 대해 bi,ib_{i,i}는 bi−1,i−1b_{i-1,i-1}로 나누어떨어진다.

정수행렬 CC가 가역이라는 것은 CC−1=ICC^{-1}=I를 만족하는 정수행렬 C−1C^{-1}이 존재한다는 뜻이다. 여기서 II는 단위행렬이다.

헨리는 대부분의 수업을 졸면서 보내서 이 문제를 어떻게 푸는지 모른다. 그래서 당신에게 도움을 요청한다.

입력

입력 파일에는 여러 개의 테스트 케이스가 들어 있다.

각 테스트 케이스는 행렬의 크기 nn으로 시작하고, 이어서 각 줄에 정수 nn개씩 nn줄에 걸쳐 행렬이 주어진다. (2≤n≤52 \le n \le 5이고, 행렬의 모든 원소는 −10-10 이상 1010 이하이다.)

입력은 n=0n = 0인 줄로 끝난다. 입력 파일 하나에는 최대 100개의 테스트 케이스가 있다.

출력

각 테스트 케이스마다 정수행렬 LL, L−1L^{-1}, RR, R−1R^{-1} 네 개를 출력한다. 행렬 사이에는 빈 줄을 둔다. 해가 여러 개라면 그중 아무거나 하나를 출력하면 된다. 이러한 행렬은 항상 존재함이 보장되어 있다.

예제1

  1. 예제 1

    입력
    3
    1 2 3
    6 5 4
    7 8 9
    0
    
    예상 출력
    1 0 0
    1 1 -1
    -13 -6 7
    
    1 0 0
    6 7 1
    7 6 1
    
    1 -2 1
    0 1 -2
    0 0 1
    
    1 2 3
    0 1 2
    0 0 1