특성 다항식의 군주 (2)
시간 제한5초메모리 제한1024 MB
각 원소가 a + b*sqrt(D) 꼴인 n x n 행렬의 특성 다항식 계수를 구합니다. 각 계수의 정수 부분과 sqrt(D) 부분을 M으로 나눈 나머지로 출력합니다.
문제
행렬 의 행렬식은 다음과 같이 정의한다. 식에서 는 의 행 열에 있는 원소이다. 은 의 순열들의 집합이며, 각 에 대해 이 성립한다.
의 특성 다항식 는 에 대한 차 다항식이며, 로 정의한다.
이번 문제의 행렬 원소는 특이하다. 1보다 큰 제곱수로 나누어떨어지지 않는 정수 이 주어진다. 의 모든 원소는 정수 에 대해 꼴로 나타낼 수 있는 수, 즉 다음 집합의 원소이다.
의 계수 도 의 원소임을 증명할 수 있다. 각 를 만족하는 정수 는 유일하게 존재한다. 주어진 정수 에 대해, 각 와 를 으로 나눈 나머지를 구하는 프로그램을 작성하시오.
입력
첫 줄에 행렬의 크기 , 나눗셈에 사용되는 정수 , 정수 가 주어진다.
이어지는 개의 줄에는 각각 개의 정수가 주어진다. 번째 줄의 번째 수를 , 번째 수를 라고 하면 이다.
출력
총 개의 줄에 걸쳐, 번째 줄에는 와 를 으로 나눈 나머지를 공백으로 구분하여 출력한다.
정수 를 으로 나눈 나머지란, 가 의 배수가 되는 가장 작은 음이 아닌 정수 를 의미한다.
제한
- 이고, 는 1보다 큰 제곱수로 나누어떨어지지 않는다.
- 모든 에 대해 라고 두면, 이다.
힌트
- 각 에 대해, 를 만족하는 정수 는 유일하게 존재한다.