Zadanie
Heslo
Počet bodov: 60
Dávid je paranoidný a bojí sa, že nepoctiví riešitelia by sa mohli snažiť získať vzorové riešenia Zenitu ešte pred súťažou. Čo ak nejaký riešiteľ ukradne mobil od jedného organizátora a nájde v ňom všetky úlohy aj s riešeniami? Toto nemôže dopustiť!
Dohodol sa s organizátormi, že si všetci nastavia na mobile odomykací vzor a aby to nemali také ťažké, rovno im nejaké vzory vymyslel. Dávid ale asi nevie ako presne mobily fungujú a preto niektoré vzory čo vymyslel nie sú platné. Potrebuje vašu pomoc (tých poctivých riešiteľov) aby ste mu pomohli určiť ktoré vzory sú platné a ktoré nie.
Úloha
Na vstupe dostanete popis vzoru a vašou úlohou je vypísať či je platný.
Základ každého vzoru je mriežka \(n\times m\) bodiek (\(n\) riadkov a \(m\) stĺpcov). Vzor je nejaká postupnosť týchto bodiek spojených úsečkami, a je platný ak spĺňa nasledujúce podmienky: 1. Každá bodka je použitá najviac raz. 1. Ak úsečka medzi bodkami \(a\) a \(b\) prechádza cez inú bodku \(c\), táto bodka sa musí v postupnosti nachádzať skôr ako \(a\) a/alebo \(b\).
Bodky budeme číslovať od \(1\) do \(n\cdot m\) po riadkoch zhora dole a zľava doprava, tak ako na obrázku.
Vstup a Výstup
Prvý riadok obsahuje tri kladné celé čísla \(n, m, l\) popisujúce rozmery mriežky a dĺžku vzoru. Platí \(1 \le l \le n\cdot m\).
Druhý riadok obsahuje \(l\) čísel medzi \(1\) a \(n\cdot m\) vrátane. Tie opisujú čísla bodiek z ktorých sa skladá vzor v danom poradí.
Ak je vzor platný vypíšte Ano
, inak vypíšte Nie
.
V prvej sade platí \(n=m=3\).
V druhej sade \(n, m \le 10\).
V tretej sade \(n, m \le 500\).
Príklady
Input:
3 3 6
1 5 9 8 7 3
Output:
Ano
Vstup zodpovedá vzoru na obrazku.
Input:
3 3 4
1 2 5 1
Output:
Nie
Bodky sa nemôžu opakovať
Input:
3 3 3
1 3 6
Output:
Nie
Tento vzor je tiež neplatný lebo sme prešli cez bodku číslo 2 bez toho aby sme ju označili.
Input:
3 3 4
1 3 6 2
Output:
Nie
Aj v tomto prípade sme prešli cez bodku číslo 2 bez toho aby sme ju označili. Označili sme ju až neskôr.