Cod sursa(job #1758490)

Utilizator TolomeiuEusebiuTolomeiuEusebiuMarin TolomeiuEusebiu Data 17 septembrie 2016 13:04:06
Problema Parcurgere DFS - componente conexe Scor 65
Compilator fpc Status done
Runda Arhiva educationala Marime 0.97 kb
program Pascal;
var n,m,i,l,c,j,k:longint;
    start,t1,t2,viz:array of longint;
    f,g:text;
procedure dfs(nod:longint);
var p:longint;
begin
    viz[nod]:=1;
    p:=start[nod];
    while p<>0 do
       begin
           if viz[t1[p]]=0 then
                           dfs(t1[p]);
           p:=t2[p];
       end;
end;
begin
    assign(f,'dfs.in');
    reset(f);
    assign(g,'dfs.out');
    rewrite(g);
    readln(f,n,m);
    setlength(start,n+1);
    setlength(t1,2*n);
    setlength(t2,2*n);
    setlength(viz,n);
    for l:=1 to m do
      begin
          readln(f,i,j);
          k:=k+1;
          t1[k]:=j;
          t2[k]:=start[i];
          start[i]:=k;
          k:=k+1;
          t1[k]:=i;
          t2[k]:=start[j];
          start[j]:=k;
      end;
      c:=0;
      for i:=1 to n do
        if viz[i]=0 then
           begin
               dfs(i);
               c:=c+1;
           end;
        writeln(g,c);
close(f);
close(g);
end.