Cod sursa(job #1359940)

Utilizator Stefan.Andras Stefan Stefan. Data 25 februarie 2015 10:00:57
Problema Parcurgere DFS - componente conexe Scor 55
Compilator fpc Status done
Runda Arhiva educationala Marime 1.19 kb
program dfs_info;
type lista = array[0..1,1..400000] of longint;
type pornire = array[1..100000] of longint;
var f,g:text;
    n,m,k,i,j,numar:longint;
    viz:array[1..100000] of byte;
    t:lista;
    start:pornire;
procedure df(nod:longint);
var p:longint;
begin
        p:=start[nod];
        viz[nod]:=1;
        while p <> 0 do
                begin
                if viz[t[0,p]] = 0 then
                        df(t[0,p]);
                p:=t[1,p];
                end;

end;
begin
        assign(f,'dfs.in'); reset(f);
        assign(g,'dfs.out'); rewrite(g);
        readln(f,n,m);
        while not seekeof(f) do
                begin
                inc(k);
                readln(f,i,j);
                t[0,k]:=j;
                t[1,k]:=start[i];
                start[i]:=k;
                inc(k);
                t[0,k]:=i;
                t[1,k]:=start[j];
                start[j]:=k;
                end;
        for i:=1 to n do
                if viz[i] = 0 then
                        begin
                        inc(numar);
                        df(i);
                        end;
        writeln(g,numar);
        close(f); close(g);
end.