type e = record j,k: word end; var nv, {кількість вершин} ne, {кількість ребер} m, {довжина маршруту} i0, {індекс того, що знаємо} i1, {індекс того, що обчислюємо} j,k,l: word; c: array[0..1,0..9] of word; b: array[0..99] of e; {масив дуг} nb: array[0..9] of word; {вказівник на ae: дуги, що виходять з точки j відображено у елементах масиву з індексами від ne[j] до ne[j+1]-1 включно} o: text; {Заміна значень елементів} procedure QSort(l,r: word); var x,y: e; i,j: word; BEGIN x:=b[l+random(r-l+1)]; i:=l; j:=r; while i<=j do begin while b[i].jx.j do dec(j); if i<=j then begin y:=b[i]; b[i]:=b[j]; b[j]:=y; inc(i); dec(j) end end; if l