Cod sursa(job #1606742)

Utilizator noi_totinoi toti noi_toti Data 20 februarie 2016 14:52:35
Problema Parcurgere DFS - componente conexe Scor 0
Compilator fpc Status done
Runda Arhiva educationala Marime 1 kb
program nume;
type vector=array [0..1000]of integer;
var a:array[0..1000,0..1000]of integer;
    i,max,C1,j,n,m,x,y,C:integer;
    f,g:text;
    viz:vector;
    viz1:array of integer;
procedure dfs(x:integer;viz:vector);
var i:integer;
begin
    if viz[x]=0 then
       begin
           viz[x]:=1;
           for i:=1 to n do
             if (a[x,i]=1)and(viz[i]=0)then
                dfs(i,viz);
       end;
       C:=C+1;
end;
begin
    assign(f,'dfs.in');
    reset(f);
    assign(g,'dfs.out');
    rewrite(g);
    readln(f,n,m);

    setlength(viz1,n+1);
    for i:=1 to m do
       begin
           readln(f,x,y);
           a[x,y]:=1;
           a[y,x]:=1;
       end;
    for i:=1 to n do
     begin
       dfs(i,viz);
       if C<>n then
       viz1[C]:=1;
       if C>max then
                max:=C;
       C:=0;
     end;
   for i:=1 to max do
      if viz1[i]<>0 then
                    C1:=C1+1;
                    writeln(g,C1);
close(f);
close(g);
end.