Pagini recente » Cod sursa (job #2758149) | Cod sursa (job #264514) | Cod sursa (job #2104058) | Cod sursa (job #1802394) | Cod sursa (job #465878)
Cod sursa(job #465878)
program p1;
type copil=record nod,pz:longint;m:shortint;end;
relatii=record x,y:longint;end;
var f,g:text;
a:array[1..1000,1..1000] of shortint;
r:array[1..1000] of longint;
c:array[1..1000] of copil;
afis:array[1..1000] of relatii;
viz:array[1..1000] of shortint;
i,n,m,x,y,max,im,p,u,ok,na:longint;
procedure vezi(x:longint);
var y:longint;
begin
while c[x].pz>0 do
begin
writeln(g,c[x].nod,' ',c[c[x].pz].nod);
na:=na+1;
afis[na].x:=c[x].nod;
afis[na].y:=c[c[x].pz].nod;
c[x].m:=1;
x:=c[x].pz;
end;
end;
begin
assign(f,'mesaj4.in');reset(f);
assign(g,'mesaj4.out');rewrite(g);
read(f,n,m);
for i:=1 to m do
begin
read(f,x,y);
if a[x,y]=0 then
begin
r[x]:=r[x]+1;
r[y]:=r[y]+1;
a[x,y]:=1;
a[y,x]:=1;
end;
end;
max:=r[1];im:=1;
for i:=2 to n do
if r[i]>max then begin max:=r[i];im:=i;end;
c[1].nod:=im;
viz[im]:=1;
p:=1;u:=1;na:=0;
while p<=u do
begin
for i:=1 to n do
if (a[c[p].nod,i]=1)and(viz[i]=0) then
begin
u:=u+1;
c[u].nod:=i;
viz[i]:=1;
c[u].pz:=p;
end;
p:=p+1;
end;
ok:=(n-1)*2;
for i:=1 to n do
if viz[i]=0 then begin ok:=-1; break;end;
writeln(g,ok);
if ok>0 then
begin
for i:=u downto 1 do
if c[i].m=0 then vezi(i);
for i:=n-1 downto 1 do
writeln(g,afis[i].y,' ',afis[i].x);
end;
close(f);
close(g);
end.