55 lines
1.1 KiB
ObjectPascal
55 lines
1.1 KiB
ObjectPascal
var
|
|
n,l:longint;
|
|
pd:array[1..100,1..100] of boolean;
|
|
dl:array[1..10000] of longint;
|
|
jl:array[1..100] of longint;
|
|
pp:array[1..100] of boolean;
|
|
i,j,k:longint;
|
|
t,w,c:longint;
|
|
begin
|
|
assign(input,'family.in'); reset(input);
|
|
assign(output,'family.out'); rewrite(output);
|
|
readln(n,l);
|
|
fillchar(pd,sizeof(pd),false);
|
|
fillchar(pp,sizeof(pp),true);
|
|
for i:=1 to l do
|
|
begin
|
|
readln(t,w);
|
|
pd[t,w]:=true;
|
|
pd[w,t]:=true;
|
|
end;
|
|
for k:=1 to n do
|
|
begin
|
|
dl[1]:=k;
|
|
t:=1;
|
|
w:=1;
|
|
c:=0;
|
|
repeat
|
|
for i:=1 to n do
|
|
if pd[dl[t],i] and (pp[i]) then
|
|
begin
|
|
inc(w);
|
|
dl[w]:=i;
|
|
pp[i]:=false;
|
|
pd[dl[t],i]:=false;
|
|
pd[i,dl[t]]:=false;
|
|
inc(c);
|
|
end;
|
|
inc(t);
|
|
until t>w;
|
|
if c<>0 then jl[k]:=c+1;
|
|
if (c=0) and pp[k] then begin jl[k]:=1; pp[k]:=false; end;
|
|
end;
|
|
c:=0;
|
|
k:=0;
|
|
for i:=1 to n do
|
|
begin
|
|
if jl[i]<>0 then
|
|
inc(c);
|
|
if jl[i]>k then
|
|
k:=jl[i];
|
|
end;
|
|
writeln(c,' ',k);
|
|
close(input);
|
|
close(output);
|
|
end. |