program mraveniste; var n:word; { počet komůrek v mraveništi. } K,L:word; { komůrky mezi kterými hledáme nejkratší cestu } i:word; function chodba(a,b:word):boolean; { Je mezi komůrkami a b chodbička? } var s:string; begin write(a,' ',b,': '); readln(s); chodba:=s='Ano'; end; function cesta(a,b:word; delka:word):boolean; { Má nějaká cesta mezi a b danou délku? } var i:word; begin if delka=1 then if a=b then cesta:=false else cesta:=chodba(a,b) else begin cesta:=true; for i:=1 to n do if cesta(a,i,delka div 2) and cesta(i,b,(delka+1) div 2) then exit; cesta:=false; end end; begin readln(n,K,L); for i:=1 to n do if cesta(K,L,i) then begin writeln('Nejkratší cesta mezi komůrkami ',K,' a ',L,' má délku ',i,'.'); halt end; writeln('Mezi ',K,' a ',L,' neexistuje cesta - mraveniště jsou alespoň dvě!'); end.