Cod sursa(job #210655)

Utilizator FllorynMitu Florin Danut Flloryn Data 28 septembrie 2008 14:52:47
Problema Parcurgere DFS - componente conexe Scor 0
Compilator fpc Status done
Runda Arhiva educationala Marime 1.31 kb
program pascal;
var f,g:text;
 a:array[1..10000,1..10000] of integer;
 v:array[1..10000] of integer;    viz:array[1..100001] of boolean;
 n,i,j,pi,ps,nod,k,p,m,max:longint; ok:boolean;
 procedure citire;
 begin
  assign(f,'dfs.in'); reset(f);
  assign(g,'dfs.out'); rewrite(g);
  readln(f,n,m);
  while not eof(f) do
   begin
    readln(f,i,j);
    a[i,j]:=1;
    a[j,i]:=1;
   end;
  for I:=1 to n do viz[i]:=false;
 end;
    procedure bf(nod:integer);
    begin
     pi:=1;
     ps:=1;
     k:=1;
     v[k]:=nod;
     viz[nod]:=true;
     while ps<=pi do
         begin
           for j:=1 to n do
           if (a[nod,j]=1) and (viz[j]=false) then
                  begin
                       k:=k+1;
                       v[k]:=j;
                       a[nod,j]:=0;
                       viz[j]:=true;
                       pi:=pi+1;
                  end;
          ps:=ps+1;
          nod:=v[ps];
         end;
    end;

begin
 citire;
 max:=0;
 bf(1);
 if k>max then max:=k;
 repeat
 ok:=true;
 for i:=1 to n do
  if viz[i]=false then
                        begin
                          bf(i);
                          if k>max then max:=k;
                          ok:=false;
                        end;
 until  ok;
 write(g,max);
 close(f);
 close(g);

 end.