Rūķīšu karaliste

2
Latvijas Informātikas olimpiādes logo

Uzdevums no 2026. g. LIO valsts kārtas; abām grupām.

Stāsts

Rūķīšu pārvaldībā ir nonākusi milzīga taisnstūrveida rūtiņu karaliste ar izmēru NN x MM. Uzreiz tika nolemts, ka karalistes kreisais apakšējais stūris atradīsies pozīcijā (1,1)(1, 1). Ilgus gadus klaiņojot, KK rūķīši ir izvēlējušies rūtiņas, kurās apmesties, un šajās rūtiņās ir uzbūvējuši mājiņas. Pēc ilgiem laikiem vadošie rūķīši izlēma sadalīt visu karalisti taisnstūros tā, ka katrs taisnstūris iekļauj tieši vienu rūķīša mājiņu. Lai nodrošinātu, ka karalisti ir viegli attēlot kartēs, tika nolemts, ka visiem taisnstūriem ir jābūt paralēli karalistes malām, kā arī to stūriem jāsakrīt ar rūtiņu stūriem.

Vienas šādas karalistes piemērs ir redzams 1. attēlā, kur N=6,M=7,K=5N=6, M=7, K=5 un iekrāsotajās rūtiņās ir apmetušies rūķīši. 2. attēlā ir redzams viens veids, kā sadalīt karalisti.

Karaliste pirms sadalīšanas
Karaliste pirms sadalīšanas
Karaliste pēc sadalīšanas taisnstūros
Karaliste pēc sadalīšanas taisnstūros

Dotām NN un MM vērtībām, kā arī rūķīšu mājiņu pozīcijām atrast tādu karalistes sadalījumu taisnstūros, ka katrā taisnstūrī ir tieši viena mājiņa, to laukumi nepārklājas, kā arī šie laukumi noklāj visu karalisti!

Ievaddati

Pirmajā rindā doti trīs, ar tukšumzīmi atdalīti, naturāli skaitļi - karalistes rindu un kolonnu skaits NN un MM (1≤N,M≤109)(1 \leq N,M \leq 10^9) un mājiņu skaits K(1≤K≤min⁡(3⋅105,N⋅M))K (1 \leq K \leq \min(3 \cdot 10^5, N \cdot M)). Nākamajās KK rindās doti skaitļi xix_i un yiy_i (1≤xi≤N1 \leq x_i \leq N, 1≤yi≤M1 \leq y_i \leq M), kur xix_i norāda rindu, bet yiy_i kolonnu, kurā atrodas ii-tā rūķīša mājiņa. Ir garantēts, ka visu rūķīšu mājiņu pozīcijas ir atšķirīgas.

Izvaddati

Ja nav iespējams veikt laukuma sadalījumu, izvaddatu vienīgajā rindā izvadiet skaitli -1, pretējā gadījumā izvadiet KK rindas, kur i-tajā rindā ir norādīts taisnstūris, kurš iekļauj tieši vienu rūķīša mājiņu. Taisnstūrus drīkst izvadīt patvaļīgā secībā. Taisnstūri ir jāizvada formātā xi1x_{i_1} yi1y_{i_1} xi2x_{i_2} yi2y_{i_2}, kur (xi1;yi1)(x_{i_1}; y_{i_1}) norāda rūtiņu, kurā atrodas taisnstūra kreisais apakšējais stūris, bet (xi2;yi2)(x_{i_2}; y_{i_2}) norāda rūtiņu, kurā atrodas taisnstūra labais augšējais stūris. Visiem taisnstūriem ir jāizpildās sakarībām 1≤xi1≤xi2≤N1 \leq x_{i_1} \leq x_{i_2} \leq N un 1≤yi1≤yi2≤M1 \leq y_{i_1} \leq y_{i_2} \leq M, tiem ir jānoklāj visa karaliste, tie nedrīkst pārklāties, un katram taisnstūrim ir jāiekļauj tieši viena rūķīša mājiņa. Ja ir iespējami vairāki sadalījumi, izvadiet jebkuru no tiem!

Apakšuzdevumi un to vērtēšana

#Apakšuzdevuma aprakstsPunkti
1.

Uzdevuma tekstā dotie trīs testi

2
2.

N,M≤10N,M \leq 10

8
3.

N,M≤100N,M \leq 100

15
4.

K≤10K \leq 10

15
5.

K≤100K \leq 100

15
6.

Visiem 1≤i<K1 \leq i < K izpildās xi=xi+1x_i = x_{i + 1}

10
7.

Visiem 1≤i<K1 \leq i < K izpildās yi=yi+1y_i = y_{i + 1}

10
8.

Visiem 1≤i<j≤K1 \leq i < j \leq K izpildās xi≠xjx_i \neq x_j un yi≠yjy_i \neq y_j.

10
9.

Bez papildu ierobežojumiem

15
Apakšuzdevumu punktu summa = 100.

Piemēri

Ievaddati

6 7 5 6 6 2 3 2 6 4 5 5 2 Kopēt kodu

Izvaddati

5 5 6 7 1 1 2 4 1 5 2 7 3 5 4 7 3 1 6 4 Kopēt kodu

Ievaddati

2 2 2 1 1 2 2 Kopēt kodu

Izvaddati

1 1 1 2 2 1 2 2 Kopēt kodu

1. apakšuzdevuma ievaddati

5 5 5 5 3 5 2 4 2 1 4 2 5 Kopēt kodu
5 5 5 4 1 5 1 1 5 2 1 1 1 Kopēt kodu