1.
- napište predikát rotace/2 na rotování seznamu. Nesmíte použít žádné pomocné predikáty. (V lineárním čase) (pouze 3 verze)
- v konstantním čase, jakou potřebujete strukturu? Ukažte na [1,2,3]
- napište rotace/2 (pouze 2 verze) v konstantním čase
2.
- máte ČUM ([a>-b, a>-c, ...]). Vypište všechny neporovnatelné dvojice (ve formě seznamu), tzn například [b-c, ...]
3.
- Máte XML strom
Kód: Vybrat vše
data Tree a = T a [Tree a]
4.
- Máte Multiset, napsat instanci třídy Ord (m1 < m2 <==> existuje prvek v m2\m1, ktery je vetsi, nez vsechny prvky v m1\m2 - mnozinovy rozdil)
Druhá část:
Máte N truhel, N+1 klíčů, v každé truhle je právě jeden klíč, jeden máte na začátku.
Každý klíč má svou barvu a každá truhla má barvu, truhlu otevřete jen klíčem té samé barvy. Zároveň když použijete klíč, už ho nemůžete použít znovu (zůstane v zámku)?
Existuje posloupnost otvírání truhel tak, že otevřete všechny truhly? Pozn. máte to udělat polynomiálně