QOJ.ac

QOJ

حد الوقت: 1.0 s حد الذاكرة: 1024 MB مجموع النقاط: 100 قابلة للهجوم ✓

#18406. Kääntövimma

الإحصائيات

Herra Nežmah löysi $n$ rivin ja $m$ sarakkeen ruudukon, joka on täynnä numeroita $0$ ja $1$. Pakko-oireisen häiriönsä (OCD) vuoksi hän haluaa muuttaa ruudukon kaikki ykköset nolliksi. Hänellä on $k$ järjestettyä lukuparia $(a_i, b_i)$, joista hän pitää. Ainoa operaatio, jonka hän saa tehdä, on seuraava:

  • Valitse ruutu $(r, c)$ joko ensimmäiseltä riviltä tai ensimmäisestä sarakkeesta.
  • Valitse yksi lukupari $(a, b)$, josta hän pitää.
  • Käännä kaikkien niiden ruutujen numerot, jotka sisältyvät korkeutta $a$ ja leveyttä $b$ olevaan suorakulmioon, jonka vasen yläkulma on ruutu $(r, c)$. Kääntäminen tarkoittaa kaikkien numeroiden $0$ muuttamista numeroiksi $1$ ja numeroiden $1$ muuttamista numeroiksi $0$. Suorakulmion on sisällyttävä kokonaan ruudukkoon.

Auta Nežmahia tyhjentämään ruudukko!

Syöte

Ensimmäinen rivi sisältää yhden kokonaisluvun $t$ ($1 \le t \le 300$) — testitapausten lukumäärän.

Kunkin testitapauksen ensimmäinen rivi sisältää $3$ kokonaislukua $n$, $m$ ja $k$ ($2 \le n, m \le 1000, 1 \le k \le 20$), ruudukon mitat ja parien $(a_i, b_i)$ lukumäärän.

Seuraavat $n$ riviä sisältävät kukin $m$ merkkiä, jotka ovat kaikki 0 tai 1, kuvaten ruudukon.

Seuraavat $k$ riviä sisältävät kukin kaksi kokonaislukua $a_i$ ja $b_i$ ($1 \le a_i < n, 1 \le b_i < m$, kaikki parit $(a_i, b_i)$ ovat erisuuria).

On taattua, että lukujen $n$ summa ja lukujen $m$ summa yli kaikkien testitapausten eivät ylitä arvoa $1000$.

Tuloste

Tulosta jokaista testitapausta kohden operaatioiden lukumäärä ($0 \le op \le k(n + m)$).

Tulosta seuraavilla $op$ rivillä $3$ kokonaislukua $r_i$, $x_i$ ja $y_i$ ($1 \le r_i \le k, 1 \le x_i \le n - a_{r_i} + 1, 1 \le y_i \le m - b_{r_i} + 1$, vähintään toinen luvuista $x_i$ ja $y_i$ on yhtä suuri kuin $1$), mikä tarkoittaa, että valitset käännettäväksi kaikki ruudut suorakulmiossa, jossa on $a_{r_i}$ riviä ja $b_{r_i}$ saraketta ja jonka vasen yläkulma on kohdassa $(x_i, y_i)$.

Ratkaisun olemassaolo on taattu, ja jos ratkaisuja on useita, voit tulostaa niistä minkä tahansa.

Esimerkki

Syöte 1

5
6 6 2
000000
111110
000000
100001
011111
111110
5 5
3 5
4 5 2
10111
00101
10000
01100
1 3
2 1
2 2 1
00
00
1 1
5 5 3
10100
10010
00000
01101
00100
3 4
2 3
4 2
5 5 4
01010
01010
10101
00100
00100
2 2
2 3
3 2
3 3

Tuloste 1

5
1 1 2
2 1 2
2 2 1
2 3 1
2 4 1
6
1 1 1
1 1 2
1 4 1
2 1 3
2 1 5
2 3 1
0
10
1 1 1
1 1 2
1 2 1
2 1 1
2 1 2
2 4 1
3 1 1
3 1 2
3 1 4
3 2 1
5
3 1 4
2 1 3
4 1 2
2 4 1
3 3 1

Discussions

About Discussions

The discussion section is only for posting: General Discussions (problem-solving strategies, alternative approaches), and Off-topic conversations.

This is NOT for reporting issues! If you want to report bugs or errors, please use the Issues section below.

Open Discussions 0
No discussions in this category.

Issues

About Issues

If you find any issues with the problem (statement, scoring, time/memory limits, test cases, etc.), you may submit an issue here. A problem moderator will review your issue.

Guidelines:

  1. This is not a place to publish discussions, editorials, or requests to debug your code. Issues are only visible to you and problem moderators.
  2. Do not submit duplicated issues.
  3. Issues must be filed in English or Chinese only.
Active Issues 0
No issues in this category.
Closed/Resolved Issues 0
No issues in this category.