Roma_0297

Untitled

Feb 7th, 2012
99
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Delphi 1.13 KB | None | 0 0
  1. program Project2;
  2.  
  3. {$APPTYPE CONSOLE}
  4.  
  5. uses
  6.   SysUtils;
  7. var
  8.   arr : array[1..100,1..100]of integer;
  9.   used : array [1..100] of boolean;
  10.   q : array [1..100] of integer;
  11.   otvet : array[1..100] of integer;
  12.   i, l, r, n, s, f, j, sum : integer;
  13.   procedure BFS(n, s, f : integer);
  14.     begin
  15.       l:=1;
  16.       r:=1;
  17.       q[r]:=s;
  18.       sum:=0;
  19.       otvet[s] := 0;
  20.       used[s]:=true;
  21.       while l <= r do
  22.         begin
  23.           inc(sum);
  24.           for i := 1 to n do
  25.             begin
  26.               if (arr[s,i]=1) and (not used[i]) then
  27.                 begin
  28.                   inc(r);
  29.                   q[r] := i;
  30.                   used[i] := TRUE;
  31.                   otvet[i] := sum;
  32.                 end;
  33.             end;
  34.           inc(l);
  35.           s := q[l];
  36.         end;
  37.     end;
  38. begin
  39.   //reset(input,'bfs.in');
  40.   //rewrite(output,'bfs.out');
  41.   read(n,s,f);
  42.   for i := 1 to n do
  43.     begin
  44.       for j := 1 to n do
  45.         begin
  46.           read(arr[i,j]);
  47.         end;
  48.     end;
  49.   for i:=1 to n do
  50.     begin
  51.       used[i]:=false;
  52.     end;
  53.   BFS(n,s,f);
  54.   write(otvet[f]);
  55.   readln;
  56.   readln;
  57. end.
Advertisement
Add Comment
Please, Sign In to add comment