program dul; const MAX=100; var N: word; { počet měst } nosnosti: array[1..MAX,1..MAX] of integer; { nosnosti silnic, -1 = silnice neexistuje } ohodnoceni: array[1..MAX] of integer; { nosnosti zatím nalezených cest, -1 = nekonečno } odkud: array[1..MAX] of integer; { předchoži město na nejlepší cestě } trvaly: array[1..MAX] of boolean; { trvale ohodnocen? } i,j,w:word; max_nosnost:integer; procedure vypis(konec: word); begin if odkud[konec]<>-1 then vypis(odkud[konec]) else write('Nalezená cesta:'); write(' ',konec); end; begin { Nejdříve načteme popis silniční situace Kaputánii } readln(N); max_nosnost:=0; for i:=1 to N do for j:=i+1 to N do begin readln(nosnosti[i][j]); nosnosti[j][i]:=nosnosti[i][j]; if max_nosnostohodnoceni[w] then w:=i; if w<>0 then begin trvaly[w]:=true; for i:=1 to N do if (nosnosti[w][i]<>-1) and not(trvaly[i]) and { podmínku "not(trvaly[i])" lze vypustit } (ohodnoceni[i]