시간 제한메모리 제한제출정답맞힌 사람정답 비율
1 초 1024 MB176272317.969%

문제

$Z_{998244353}$에서 정의되는 $n \times n$ 크기의 두 가역행렬 $A$, $B$의 친화도는 다음 조건에 맞는 $i$ ($1 \le i \le n$)의 개수이다.

  • $A$의 $i$번째 열, $B$의 $i$번째 열을 맞바꾸었을 때, $A$와 $B$가 모두 가역행렬이다.

즉, 친화도는 $0$ 이상 $n$ 이하의 정수이다.

행렬 $A_i$를 행렬 $A_{i-1}$의 제일 왼쪽 열을 제일 오른쪽으로 옮긴 행렬로 정의하자. 이때 $A_0 = A$이다.

$0$이상 $N$ 미만의 정수 $i$에 대하여, $A_i$와 $B$의 친화도를 구하자.

입력

첫 줄에 양의 정수 $n$이 주어진다.

두 번째 줄부터 총 $n$개의 줄에 걸쳐 행렬 $A$에 대한 정보가 입력된다. 각 $n$개의 줄에는 $n$개의 정수가 공백으로 구분되어 있으며, $(i+1)$번째 줄의 $j$번째 정수는 $A_{ij}$를 의미한다.

$n+2$ 번째 줄부터 총 $n$개의 줄에 걸쳐 행렬 $B$에 대한 정보가 입력된다. 각 $n$개의 줄에는 $n$개의 정수가 공백으로 구분되어 있으며, $(i+n+1)$번째 줄의 $j$번째 정수는 $B_{ij}$를 의미한다.

출력

첫 줄에 $n$개의 정수를 공백을 사이에 두고 출력하라. $i+1$번째로 출력해야 할 정수는 $A_i$와 $B$의 친화도이다.

제한

  • $2 \le n \le 200$
  • 행렬의 각 성분은 $0$ 이상 $998244352$ 이하의 정수이다.
  • $A$와 $B$는 가역행렬이다.

예제 입력 1

4
1 0 0 0
0 1 0 0
0 0 1 0
0 0 0 1
0 0 0 1
0 0 1 0
0 1 0 0
1 0 0 0

예제 출력 1

0 2 0 2

$A_0$와 $B$의 경우, 어느 열을 교환해도 두 행렬이 모두 가역행렬이 되는 경우가 없다. 따라서 친화도는 $0$이다.

$A_1$과 $B$의 경우, $2$열이나 $4$열을 교환하면 두 행렬이 모두 가역행렬이 되지만, 나머지 열은 그렇지 않다. 따라서 친화도는 $2$이다.

$A_2$와 $B$의 경우, 어느 열을 교환해도 두 행렬이 모두 가역행렬이 되는 경우가 없다. 따라서 친화도는 $0$이다.

$A_3$과 $B$의 경우, $1$열이나 $3$열을 교환하면 두 행렬이 모두 가역행렬이 되지만, 나머지 열은 그렇지 않다. 따라서 친화도는 $2$이다.

출처

School > 경기과학고등학교 > 2023 GSHS CS Seminar J번