# Zkouška 25. 5. 2014 (Dvořák, Hric)

<{ForumPost(poster="Salmelu", timestamp=2015-05-25 16:57:21)}>
První část:  
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 

    data Tree a = T a [Tree a]

- vypište ho  
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ě
<{/ForumPost}>

<{ForumPost(poster="CiTrus", timestamp=2015-05-27 00:36:21)}>
*25.5.2015
<{/ForumPost}>

