Ak nevieš programovať, nezúfaj! Môžeš sa to naučiť a ešte za to získať body, ktoré sa ti budú počítať namiesto tejto úlohy.
Stačí, že pôjdeš na stránku Programátorskej Liahne (liahen.ksp.sk). Keď budeš riešiť sadu loops_cpp, bodmi, ktoré získaš, si môžeš nahradiť riešenie tejto úlohy. Stačí ak na spodku tejto stránky odovzdáš pdf-ko s prezývkou, ktorú používaš na Liahni.
Ak máte akékoľvek otázky ohľadom tejto úlohy, napíšte Martinovi na [email protected]
Kde bolo tam bolo, išli si Maťko s Kubkom hádzať frisbee. Keďže už bol večer, ich starostlivá mamička im nedovolila ísť ďalej ako pred ich panelák. Pri hádzaní skúšali chalani rôzne triky a blbosti. Zrazu sa Maťkovi šmykla ruka a zhrozene pozeral, ako frisbee letí a pristáva na balkóne jedného z ich susedov.
Našťastie ešte nie je nič stratené. Ich dedo Jozef má totiž veľkú zbierku skladacích rebríkov, od úplne maličkých až po rebríky vyššie ako hora. Ale nie sú to len také hocijaké rebríky. Každý rebrík má špeciálnu prípojku, pomocou ktorej sa dokáže spojiť s ľubovoľným iným rebríkom. Dedo Jozef je taktiež veľmi poriadkumilovný, takže svoje rebríky má usporiadané podľa veľkosti.
Maťko a Kubko sa teda rozhodli, že sa spýtajú deda, či by im pár rebríkov nepožičal. Dedo Jozef súhlasil, ale dovolil im spojiť najviac dva rebríky. Ak by ich totiž spojili viac, spojené rebríky by mohli byť veľmi labilné. Výsledný rebrík nesmie byť primalý, lebo na frisbee nedosiahnu, ale ani príliš vysoký, pretože im bude zavadzať a k frisbee sa nedostanú. Mal by byť tak akurát, presne po ten nešťastný balkón.
Dedo Jozef požical Kubkovi a Maťkovi svoje rebríky, ale tí teraz potrebujú zistiť, či sa s nimi dostanú na balkón alebo nie.
Úloha
Vašou úlohou je napísať program, ktorý podľa dĺžok rebríkov a výšky balkóna zistí, či existuje jeden rebrík s výškou balkóna alebo či sa dá takýto rebrík zložiť z dvoch iných. Veľkosti rebríkov nemusia byť unikátne, čo znamená, že na vstupe sa môžu vyskytnúť dva rebríky rovnakej dĺžky.
Formát vstupu
Na prvom riadku sa nachádzajú dve medzerou oddelené čísla \(k\) a \(n\) (\(1 \leq k \leq 10^9\), \(1 \leq n \leq 300\,000\)), prvé z nich označuje výšku balkóna, na ktorý spadlo frisbee, a druhé počet dedových rebríkov.
Na nasledujúcom riadku je \(n\) čísel, ktoré udávajú výšky rebríkov. Tieto čísla sú zoradené od najmenšieho po najväčšie a ich veľkosti sú medzi \(1\) a \(q\) (\(1 \leq q \leq 10^9\)).
Formát výstupu
Vypíšte na jediný riadok výstupu ano
, ak sa z najviac dvoch rebríkov dá posklať rebrík s výškou balkóna, inak nie
.
Hodnotenie
Pripravili sme 3 sady vstupov. Platia pre ne nasledové horné obmedzenia pre hodnoty \(n\), \(k\) a \(q\).
Číslo sady | 1 | 2 | 3 |
---|---|---|---|
maximálne \(n\) | \(1000\) | \(300\,000\) | \(300\,000\) |
maximálne \(k\) a \(q\) | \(1000\) | \(1\,000\,000\) | \(10^9\) |
Príklady
Input:
6 5
1 2 3 3 4
Output:
ano
Výšku \(6\) vedia Maťko s Kubkom dosiahnuť buď pomocou dvoch rebríkov dĺžky \(3\) alebo rebríkov \(2\) a \(4\).
Input:
6 2
2 3
Output:
nie
Výška \(6\) by sa dala dosiahnuť napríklad dvoma rebríkmi dĺžky \(3\), ale k dispozícií máme iba jeden. Preto je odpoveď nie.
Input:
8 3
1 8 9
Output:
ano
Rebrík výšky \(8\) sa nachádza priamo medzi rebríkmi zo vstupu, takže odpoveď je ano.
Odovzdávanie
Na odovzdávanie sa musíš prihlásiť
Otázky a diskusia
Po skončení kola budete mať príležitosť na diskutovanie o riešeniach v diskusii pod vzorovým riešením.