만드는 중입니다

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

어려운 선형대수학 문제

시간 제한1초메모리 제한1024 MB

요약
소수 체 위의 두 가역 행렬 A와 B에서, 열 하나를 서로 바꿔도 두 행렬이 모두 가역인 열의 개수를 A의 순환 이동마다 구합니다.
난이도

어려움10점 중 8점

유형
행렬, 연결 리스트, 수학
정답자
아직 제출이 없습니다

문제

Z998244353Z_{998244353}에서 정의되는 n×nn \times n 크기의 가역행렬 AA, BB의 친화도는 다음 조건을 만족하는 ii (1≤i≤n1 \le i \le n)의 개수이다.

  • AA의 ii번째 열과 BB의 ii번째 열을 맞바꾸었을 때, AA와 BB가 모두 가역행렬이다.

즉, 친화도는 00 이상 nn 이하의 정수이다.

행렬 AiA_i는 행렬 Ai−1A_{i-1}의 가장 왼쪽 열을 가장 오른쪽으로 옮긴 행렬이다. A0=AA_0 = A이다.

00 이상 NN 미만의 정수 ii에 대하여, AiA_i와 BB의 친화도를 구하자.

입력

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

두 번째 줄부터 nn개의 줄에 걸쳐 행렬 AA의 정보가 주어진다. 각 줄에는 nn개의 정수가 공백으로 구분되어 있으며, (i+1)(i+1)번째 줄의 jj번째 정수는 AijA_{ij}이다.

n+2n+2번째 줄부터 nn개의 줄에 걸쳐 행렬 BB의 정보가 주어진다. 각 줄에는 nn개의 정수가 공백으로 구분되어 있으며, (i+n+1)(i+n+1)번째 줄의 jj번째 정수는 BijB_{ij}이다.

출력

첫 줄에 nn개의 정수를 공백으로 구분하여 출력하라. i+1i+1번째로 출력해야 할 정수는 AiA_i와 BB의 친화도이다.

제한

  • 2≤n≤2002 \le n \le 200
  • 행렬의 각 성분은 00 이상 998244352998244352 이하의 정수이다.
  • AA와 BB는 가역행렬이다.

예제1

  1. 예제 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
    
    예상 출력
    0 2 0 2