Lord of the Characteristic Polynomials (2)
시간 제한5초메모리 제한1024 MB
Z[sqrt(D)] 위의 n x n 행렬이 주어질 때 특성 다항식의 계수를 M으로 나눈 나머지를 각각 두 정수로 출력한다.
문제
행렬 의 행렬식(determinant) 는 아래와 같이 정의한다. 아래 식에서 는 의 행 열에 위치한 원소를 나타낸다. 또한 는 의 순열들의 집합으로, 각 에 대해 을 만족한다.
의 characteristic polynomial 는 에 대한 차 다항식으로, 로 정의한다.
이번에는 행렬 의 원소가 다소 특이하다. 보다 큰 제곱수로 나누어떨어지지 않는 정수 가 주어진다. 이 때 의 모든 원소는 두 정수 꼴로 나타낼 수 있는 수로, 아래와 같이 정의된 집합 의 원소이다.
각 원소가 에 속하는 행렬 가 주어진다. 이 때 의 계수 또한 의 원소임을 증명할 수 있다. 또한, 를 만족하는 정수 또한 유일하게 존재한다. 주어진 정수 에 대해, 각 와 를 으로 나눈 나머지를 구하는 프로그램을 작성하시오.
입력
입력의 첫 줄에 행렬의 크기를 나타내는 정수 과 나눗셈에 사용되는 정수 , 정수 가 주어진다.
둘째 줄부터 개의 줄에 걸쳐 행렬 의 원소가 주어진다. 각 줄에는 개의 정수가 주어지며, 이 중 번째 줄의 번째 수를 , 번째 수를 라고 하면 를 만족한다.
출력
총 개의 줄에 걸쳐, 번째 줄에는 와 를 으로 나눈 나머지를 공백으로 구분지어 출력한다.
정수 를 으로 나눈 나머지란, 가 의 배수가 되는 가장 작은 음 아닌 정수 를 의미한다.
제한
- 이고, 는 보다 큰 제곱수로 나누어 떨어지지 않는다.
- 모든 에 대해 라고 두면, .
힌트
- 각 에 대해, 를 만족하는 정수 는 유일하게 존재한다.