Water transfer
Máme tři nádoby o celočíselných objemech a, b, c (čísla a, b, c nejsou větší než 10) ve kterých je na začátku objem x, y, z vody, v tomto pořadí.
Vodu můžeme přelévat z nádoby do nádoby, a to vždy tak, že nádobu kam lijeme, zcela zaplníme, nebo tak, že nádobu odkud lijeme, zcela vyprázdníme. Objem přelité vody je určen tím, která z těchto variant nastane dříve.
Vodu nesmíme vylévat nikam jinam ani doplňovat z nějakého jiného zdroje.
Vstupem programu jsou po řadě čísla a, b, c, x, y, z udávající objemy a počáteční obsahy nádob.
Program vytiskne seznam všech objemů (včetně nuly, lze-li), kterých lze přeléváním dosáhnout (celý objem vody v kterékoliv z nádob) a u každého z nich uvede za dvojtečkou minimální počet potřebných přelití. Objemy v tomto seznamu budou vytištěny v rostoucím pořadí.
Příklad:
Vstup:
4 1 1 1 1 1
Odpovídající výstup:
0:1 1:0 2:1 3:2