program abcd; var a, b: stack of 0..15; { zásobník s počítadly, pomocný zásobník } c: char; { právě zpracovávaný znak } m, x: 0..15; { pomocné proměnné } begin while read(c) do begin case c of { který bit odpovídá načtenému znaku? } 'a': m=1; 'b': m=2; 'c': m=4; 'd': m=8; end; repeat { zvýšení o jedničku } if empty(a) then x := 0 else x := pop(a); push(b, x xor m); until (x and m) = 0; while not empty(b) do { kopírujeme z `b' zpět do `a' } push(a, pop(b)); end; m := 1; { zkontrolujeme, zda se počítadla rovnají } while not empty(a) do begin x := pop(a); if (x<>0) and (x<>15) then { jsou všechny bity 0 nebo všechny 1? } m := 0; end; write(m); end.