D - Jouley

Time limit: 1s Memory limit: 64MB Input: Output:

Cerință

După ce te-ai enervat că ai nevoie de O(N3)O(N^3) operații să înmulțești 22 matrici te-ai gândit să faci următorul algoritm de înmulțirea matricilor:

Doua matrici de NN x NN se înmulțesc rotind a doua matrice în sensul acelor de ceasornic 9090 de grade. Iar apoi element cu element rezultatul din căsuța (i,j)(i,j) este egal cu produsul elementelor din cele două matrici pe pozițile (i,j)(i,j) plus suma lor.
Formal, dacă avem AB=MA \cdot B = M iar CC este matricea BB rotită 9090 de grade la dreapta, atunci Mi,j=Ai,jCi,j+Ai,j+Ci,jM_{i,j} = A_{i,j} \cdot C_{i,j} + A_{i,j} + C_{i,j}.

Se dă o matrice MM, câte perechi de matrici (A,B)(A, B), cu elemente naturale, există cu proprietatea că AB=MA \cdot B = M ?
Răspunsul este foarte mare astfel se va afișa restul rezultatulului prin împărțirea cu 998244353998244353.

Date de intrare

Pe prima linie se află NN, după care matricea MM.

Date de ieșire

Numărul de perechi de matrici cerut modulo 998244353998244353.

Restricții și precizări

  • 1N10001 \leq N \leq 1000
  • 0Mi,j1060 \leq M_{i,j} \leq 10^6

Exemplul 1

stdin

2
0 0
0 1

stdout

2

Explicație

O pereche e:

A=(0000)\begin{pmatrix} 0 & 0 \\ 0 & 0 \end{pmatrix}

și

B=(0100)\begin{pmatrix} 0 & 1 \\ 0 & 0 \end{pmatrix}

Matricea BB rotită și compusă cu AA cum scrie în enunț face chiar matricea din input.

Cealaltă pereche este:

A=(0001)\begin{pmatrix} 0 & 0 \\ 0 & 1 \end{pmatrix}

și

B=(0000)\begin{pmatrix} 0 & 0 \\ 0 & 0 \end{pmatrix}

Exemplul 2

stdin

4
8 12 54 1
43 34 1 32
0 0 123 34
101 64 72 10

stdout

28311552

Log in or sign up to be able to send submissions!