Matrice

Time limit: 1s Memory limit: 128MB Input: matrice.in Output: matrice.out

Se consideră o matrice binară AA cu KK linii și NN coloane.

Cerință

Se dau QQ operații de următoarele două tipuri:

  • 1 i j1\ i\ j – se inversează valoarea celulei (i,j)(i,j) (dacă este 00 devine 11 și invers).
  • 2 st dr2\ st\ dr – interogare prin care se cere să se determine lungimea minimă a unui drum valid care pornește din orice celulă a coloanei stst și se termină în orice celulă a coloanei drdr, precum și numărul de astfel de drumuri de lungime minimă, calculat modulo 998244353998244353.

Un drum se consideră valid dacă include doar celule cu valoarea 00, nu părăsește matricea, oricare două celule adiacente în drum au o latură comună, iar coloanele celulelor parcurse formează un șir monoton crescător. Lungimea unui drum este egală cu numărul de celule vizitate.

Formal: Drumul format din celulele (i1,j1),(i2,j2),,(ix,jx)(i_1,j_1), (i_2,j_2), \dots, (i_x,j_x) (parcurse în această ordine) este valid dacă și numai dacă Ai1,j1=Ai2,j2==Aix,jx=0A_{i_1,j_1} = A_{i_2,j_2} = \dots = A_{i_x,j_x} = 0, ikik1+jkjk1=1|i_k - i_{k-1}| + |j_k - j_{k-1}| = 1 pentru orice 2kx2 \le k \le x, și j1j2jxj_1 \le j_2 \le \dots \le j_x.

Date de intrare

Prima linie conține două numere naturale, KK și NN.
Pe următoarele KK linii se află câte un șir de NN valori din mulțimea {0,1}\{0, 1\}, reprezentând matricea inițială.
Pe următoarea linie se află numărul natural QQ.
Pe următoarele QQ linii se află câte trei numere naturale, reprezentând tipul operației (11 sau 22) și parametrii acesteia.

Date de ieșire

Fișierul de ieșire va conține răspunsurile pentru operațiile de tipul 22, câte unul pe rând. Fiecare răspuns va consta în două numere separate printr-un spațiu: lungimea minimă a drumului și numărul de drumuri de lungime minimă (modulo 998244353998244353).

Dacă nu există niciun astfel de drum valid, pe linia respectivă se va afișa -1 0.

Restricții și precizări

  • 1N,Q50 0001 \le N, Q \le 50\ 000
  • 1K71 \le K \le 7
  • Pentru operațiile de tip 11: 1iK1 \le i \le K și 1jN1 \le j \le N.
  • Pentru operațiile de tip 22: 1stdrN1 \le st \le dr \le N.
# Puncte Restricții
1 15 N,Q1 000N, Q \le 1\ 000
2 20 K=1K = 1
3 20 Nu există operații de tipul 11
4 45 Fără restricții suplimentare

Exemplu

matrice.in

3 6
0 0 0 1 0 0
1 1 0 1 0 1
0 1 0 0 0 1
3
2 1 6
1 1 4
2 1 6

matrice.out

10 1
6 1

Explicație

Prima operație ne întreabă care este lungimea minimă a unui drum care pornește de pe prima coloană și se termină pe ultima. Acest drum unic este format din celulele (1,1),(1,2),(1,3),(2,3),,(1,6)(1,1), (1,2), (1,3), (2,3), \dots, (1,6).

A doua operație transformă celula (1,4)(1,4) într-un 00.

A treia operație ne întreabă lungimea minimă a unui drum care începe pe prima coloană și se termină pe ultima. De data aceasta, drumul este în linie dreaptă, are o lungime de 66 și este, de asemenea, unic.

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