Pagini recente » Cod sursa (job #1342561) | Cod sursa (job #1898968) | Cod sursa (job #1691789) | Cod sursa (job #412819) | Cod sursa (job #1606740)
program graf;
type mat_ad=array[1..10000,1..10000] of integer;
var a:mat_ad;
v:array[1..10000] of integer;
n,m,c,k:longint;
f,g:text;
procedure citire;
var i,x,y,j:longint;
begin
assign(f,'dfs.in'); reset(f);
assign(g,'dfs.out'); rewrite(g);
readln(f,n,m);
for i:=1 to m do
begin
readln(f,x,y);
a[x,y]:=1;
a[y,x]:=1;
end;
close(f);
end;
procedure df(s:integer);
var i:integer;
begin
v[s]:=1;
for i:=1 to n do
if a[s,i]=1 then
if v[i]=0 then
df(i);
end;
procedure test;
var i:integer;
begin
for i:=1 to n do
if v[i]=0 then
begin
k:=i;
break;
end
else
k:=n;
end;
procedure conex;
var i:integer;
begin
i:=1;
while i<n do
begin
df(i);
test;
c:=c+1;
i:=k;
end;
end;
procedure final;
var i:integer;
begin
for i:=1 to n do
if v[i]=0 then
begin
c:=c+1;
v[i]:=1;
end;
end;
begin
citire;
c:=0;
k:=0;
conex;
final;
write(g,c);
close(g);
end.