var N:integer; {počet měst} D,E:array[1..N] of array[1..N] of integer; {D - délky silnic mezi městy, D[i][i]="nekonečno", místo neexistujících je také "nekonečno", E - nastaveny na 0} P:array[1..N] of integer; {posloupnost křižovatek v min kružnici, končí nulou} i,j,k,min_i,min_j,min:integer; begin Nacti_a_inicializuj(E,D,N); min:=maxint; {zatím žádná kružnice} for k:=3 to N do begin {S=(1..k-1)} for i:=1 to k-2 do {hledám nejmenší kružnice obsahující k} for j:=i+1 to k-1 do if (D[i][k]+D[k][j]+D[i][j]