求连通分量
Time Limit:1000MS Memory Limit:65536K
Total Submit:227 Accepted:128
Description
求一个图的连通分量
Input
n 顶点数(<=100)
边
Output
连通分量
Sample Input
5
1 2
3 4
2 3
0 0
Sample Output
4
var
v:array[1..100]of boolean;
a:array[0..100,0..100]of boolean;
i,n,max,ans,x,y:longint;
procedure dfs(i:longint);
var j:longint;
begin
for j:=1 to n do
if (a[i,j])and(v[j]) then
begin
v[j]:=false;
inc(ans);
dfs(j);
end;
end;
begin
read(n);
fillchar(a,sizeof(a),false);
fillchar(v,sizeof(v),true);
read(x,y);
while (x<>0)or(y<>0) do
begin
a[x,y]:=true;
a[y,x]:=true;
readln(x,y);
end;
for i:=1 to n do
begin
if ans>=max then max:=ans;
ans:=0;
dfs(i);
fillchar(v,sizeof(v),true);
end;
write(max);
end.