Bol daždivý októbrový deň. Vonku MASÍVNE pršalo. Vladko nemal čo robiť. Len tak sa pozeral von oknom. Po chvíli si všimol, že sa na chodníku vytvorilo viacero oblastí, z kade voda steká na rovnaké miesto. Vladka veľmi zaujíma, ktoré miesta na chodníku patria do akej oblasti. Pomôžete mu to zistiť? Vladko je však veľmi vyberavý. Páči sa mu iba také označenie oblastí, pre ktoré platí: ak máme dve oblasti - $O_1, O_2$ oblasť na ktorú pri prechode zľava doprava, zhora dole narazíme ako prvú, musí byť označená menším číslom.
Chodník je reprezentovaný dvojrozmerným poľom. Voda steká z políčka $CH[i][j]$ na najnižšieho nižšieho suseda. Ak má viacero susedov rovnakú výšku, priorita stekania ide: S, Z, J, V. Vašou úlohou je zistiť, ktoré políčka patria do rovnakej oblasti. Oblasti číslujeme od 1. Očíslovanie oblastí musí spĺňať Vladkovu podmienku.
V prvom riadku vstupu dostanete 2 čísla - $n, m$ - rozmery chodníka. Ďalej nasleduje $n$ riadkov po $m$ čísiel.
V jednotlivých sadách platia nasledujúce obmedzenia:
| Sada | 1 | 2 | 3 | 4 |
|---|---|---|---|---|
| $1 \leq n, m \leq$ | $10$ | $100$ | $500$ | $500$ |
| $1 \leq \max CH[i][j] \leq$ | $100$ | $4\cdot10^4$ | $2,5\cdot 10^5$ | $10^9$ |
Vypíšte $n$ riadkov po $m$ stĺpcoch. Hodnota $CH[i][j]$ značí, do ktorej oblasti patrí políčko $CH[i][j]$.
Input:
3 3
1 1 1
1 2 1
1 1 1
Output:
1 2 3
4 2 5
6 7 8
Voda steká z políčka $CH[1][1]$ na políčko $CH[0][1]$, pretože spomedzi ostatných susedov $CH[1][1]$ má najvyššiu prioritu
Input:
2 2
1 1
1 1
Output:
1 2
3 4
Voda nemá kam stekať zo žiadneho políčka. Odpoveď:
`2 1
3 4`
by nevyhohovala Vladkovým podmienkam, pretože oblasť 2 by sme stretli pred oblasťou 1.
Korešpondenčný seminár z programovania zastrešuje občianske združenie Trojsten.
Trojsten, o.z.
FMFI UK, Mlynská dolina
842 48 Bratislava
Programátorská súťaž pre základoškolákov
Materiály a úlohy na výučbu programovania
Intenzívny programátorský zážitok v lete