Jeřáb
Jeřáb se skládá z \(n\) segmentů spojených klouby. První segment je upevněn k zemi a tyčí se kolmo vzhůru. Na něj je kloubem napojen druhý segment a může se kolem tohoto kloubu libovolně pohybovat. Na druhý segment je napojen třetí a tak dále, až na konci posledního segmentu je hák.
Abychom situaci zjednodušili, předpokládejme, že vše se odehrává v rovině: země je vodorovná přímka, první segment je úsečka na ni kolmá a tak dále.
Ovládání multisegmentového jeřábu je samozřejmě docela obtížné, nikdy nevíte, kde vám zrovna hák stojí. Pojďme vymyslet datovou strukturu, která to bude umět udržovat. Nejprve ji inicializujeme, počáteční stav jeřábu bude se všemi segmenty kolmo vzhůru. Pak bude struktura dostávat příkazy "otoč \(i\)-tým kloubem o orientovaný úhel \(\delta\)" a po každém příkazu odpoví, kde je zrovna hák. Slibujeme, že jeřáb nikdy nepřekříží sám sebe.
Verze pro fajnšmekry (za dalších 5 bodů): Jeřáb je strom (zakořeněný v zemi, divné, že?). V kloubech se může větvit. Segmenty "vyrůstající" ze společného kloubu se mohou pohybovat nezávisle. Slibujeme, že i tato verze má velmi elegantní řešení.