Milan si plánuje výlet a potrebuje si do batohu vhodne usporiadať oblečenie podľa toho, ako sa podmienky budú meniť v čase. K dispozícii má len 2 údaje.
- dĺžku (
D) jeho cesty - zoznam (
Z) súradníc (S), na ktorých sa cestou nachádzajú stromy
Dĺžka D je kladné celé číslo.
Súradnica S je kladné celé číslo, ktoré udáva, vo vzdialenosti koľkých metrov od štartu sa nachádza strom. S < D, S >= 0.
V zozname Z sa žiadna súradnica neopakuje viac ako 1-krát, taktiež count(Z) <= D.
Čiže ak sú vstupy D = 3, Z = [0, 1, 2], tak to znamená, že na celej ceste sú stromy.
Ak sú vstupy D = 3, Z = [], tak to znamená, že nikde na ceste nie sú stromy.
Ak sú vstupy D = 3, Z = [0], tak to znamená, že hneď na začiatku je strom a potom už nič.
Vytvor funkciu, ktorej vstupy budú D a Z a jej výsledkom bude zoznam úsekov, ktoré bude Milan počas svojej cesty prechádzať.
Jeden úsek bude mať formát [boolean, integer] kde prvý prvok bude udávať, či na danom úseku je aspoň jeden strom a druhý bude udávať jeho dĺžku.
useky(3, []) -> [[false, 3]]
useky(3, [1]) -> [[false, 1], [true, 1], [false, 1]]
useky(3, [0, 1, 2]) -> [[true, 3]]
useky(4, [2, 3]) -> [[false, 2], [true, 2]]
Funkciu vypracujte v ľubovoľnom programovacom jazyku resp. v pochopiteľnom pseudo kóde. Riešenie odovzdajte ako fork tohto gistu ideálne aj s testami. Cieľom nie je len vytvoriť funkčné ale aj elegantné riešenie. Veľa šťastia.