역행렬
시간 제한1초메모리 제한128 MB
주어진 N×N 행렬의 역행렬을 998244353으로 나눈 나머지로 구하고 역행렬이 없으면 no inverse를 출력합니다.
문제
은 소수다. 정수 행렬 가 주어졌을 때, 법 위에서 의 역행렬을 구하는 프로그램을 작성하시오.
를 만족하는 행렬 를 의 역행렬이라고 하며, 로 표기한다. 두 행렬이 합동이라는 것은 같은 자리의 원소가 모두 법 에서 합동이라는 뜻이다. 은 단위행렬이며, 일 때 , 이다.
가 소수이므로 역행렬은 존재하면 유일하다. 역행렬이 존재할 필요충분조건은 의 행렬식이 의 배수가 아닌 것이다. 정수로 계산한 행렬식이 0이 아니어도 로 나누어떨어지면 법 위에서는 역행렬이 없다.
입력
첫째 줄에 행렬의 크기 이 주어진다. ()
다음 개 줄에 행렬 의 정보가 주어진다. 각 줄은 개의 정수로 이루어져 있으며, 정수의 절댓값은 1,000보다 작거나 같다. 음수 원소는 법 에서 대응하는 나머지로 읽는다.
출력
법 위에서 의 역행렬이 존재하면 개의 줄에 걸쳐 을 출력한다. 각 줄에는 개의 정수를 공백 하나로 구분해 출력하며, 각 정수는 이상 미만이어야 한다.
역행렬이 존재하지 않으면 no inverse를 출력한다.