Se consideră o matrice binară cu linii și coloane.
Cerință
Se dau operații de următoarele două tipuri:
- – se inversează valoarea celulei (dacă este devine și invers).
- – interogare prin care se cere să se determine lungimea minimă a unui drum valid care pornește din orice celulă a coloanei și se termină în orice celulă a coloanei , precum și numărul de astfel de drumuri de lungime minimă, calculat modulo .
Un drum se consideră valid dacă include doar celule cu valoarea , 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 (parcurse în această ordine) este valid dacă și numai dacă , pentru orice , și .
Date de intrare
Prima linie conține două numere naturale, și .
Pe următoarele linii se află câte un șir de valori din mulțimea , reprezentând matricea inițială.
Pe următoarea linie se află numărul natural .
Pe următoarele linii se află câte trei numere naturale, reprezentând tipul operației ( sau ) și parametrii acesteia.
Date de ieșire
Fișierul de ieșire va conține răspunsurile pentru operațiile de tipul , 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 ).
Dacă nu există niciun astfel de drum valid, pe linia respectivă se va afișa -1 0.
Restricții și precizări
- Pentru operațiile de tip : și .
- Pentru operațiile de tip : .
| # | Puncte | Restricții |
|---|---|---|
| 1 | 15 | |
| 2 | 20 | |
| 3 | 20 | Nu există operații de tipul |
| 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 .
A doua operație transformă celula într-un .
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 și este, de asemenea, unic.
