"Malou úlohu" na dynamické datové struktury dostal každej jinou, typicky něco na LSS a binární stromy - seřadit, zrušit, sečíst dlouhá čísla, vyhodnotit výraz atd...
Velká úloha:
Máme tabulku čokolády 10x10 políček. Délka strany políčka je 1. V čokoládě jsou oříšky a rozinky (kulaté, na vstupu jsou jejich souřadnice a poloměry), jejich počet je <= 1000. Máme napsat program, který určí, jak nesnadněji rozřezat čokoládu na 3 díly. Nejsnadněji s míní s co nejmenší prací, přičemž rozříznuzí čokolády o délce 1 stojí práci 1, ořechu o délce 1 stojí práce 5 a rozinky o délce 1 stojí práci 1/2. Každá hrana stojí práci v poměru kolik je tam čokolády, rozinek a ořechů. Řezat se smí jen po hranách, ale libovolně klikatit atd. Čokoláda má konstantní výšku, řezání ořechu středem i u kraje stojí stejně práce (nezáleží na výšce ořechu), prostě je to všechno jen 2D. Řezáním čokolády nesmí v žádném kusu vzniknout díra. K dispozici je paměť maximálně 1MB. Dále nám dali k dispozici funkci DélkaTětivy(xstřed,ystřed,R,y), která vrátí délku tětivy ořechu nebo rozinky o poloměru R, která protíná hranu na souřadnici y. Výstupem programu mají být hrany, které se mají řezat a cena (práce).