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.