Don't like ads? PRO users don't see any ads ;-)
Guest

Untitled

By: a guest on Apr 26th, 2012  |  syntax: Delphi  |  size: 0.87 KB  |  hits: 21  |  expires: Never
download  |  raw  |  embed  |  report abuse  |  print
Text below is selected. Please press Ctrl+C to copy to your clipboard. (⌘+C on Mac)
  1. program Projectlevel;
  2.  
  3. {$APPTYPE CONSOLE}
  4.  
  5. uses
  6.   SysUtils;
  7. var
  8.   used : array[1..2000] of boolean;
  9.   d : array[0..2000] of integer;
  10.   arr : array[1..2000,1..2000] of integer;
  11.   i, n, j, s, f, min : integer;
  12. begin
  13.   reset(input,'dijkstra.in');
  14.   rewrite(output,'dijkstra.out');
  15.   read(n,s,f);
  16.   for i:=1 to n do
  17.     begin
  18.       for j:=1 to n do
  19.         begin
  20.           read(arr[i,j]);
  21.         end;
  22.       d[i]:=2000000000;
  23.       used[i]:=false;
  24.     end;
  25.   d[s]:=0;
  26.   d[0]:=2000000000;
  27.   for i:=1 to n do
  28.     begin
  29.       min:=0;
  30.       for j:=1 to n do
  31.         begin
  32.           if (d[j]<d[min]) and (used[j]=false) then min:=j;
  33.         end;
  34.       used[min]:=true;
  35.       for j:=1 to n do
  36.         begin
  37.           if (arr[min,j]>=0) and (d[j]>d[min]+arr[min,j]) then d[j]:=d[min]+arr[min,j];
  38.         end;
  39.     end;
  40.   write(d[f]);
  41.   readln;
  42.   readln;
  43. end.