Pagini recente » Cod sursa (job #685960) | Cod sursa (job #928254)
Cod sursa(job #928254)
program euler;
var f,g:text;
ad:array of array of 0..1;
a:array of array of longint;
n,m,i,x,y,nr:longint;
retine:array[1..100000] of longint;
grad:array[1..100000] of longint;
ok:boolean;
procedure euler(v:longint);
var w,i:longint;
begin
for i:=1 to a[v,0] do
begin
w:=a[v,i];
if ad[v,w]=1 then
begin
ad[v,a[v,i]]:=0;
ad[a[v,i],v]:=0;
euler(w);
end;
end;
inc(nr); retine[nr]:=v;
end;
begin
assign (f,'ciclueuler.in'); reset (f);
assign (g,'ciclueuler.out'); rewrite(g);
readln (f,n,m);
setlength(a,n+1,1);
setlength(ad,n+1,n+1);
for i:=1 to m do
begin
read (f,x,y);
inc(grad[x]);inc (grad[y]);
setlength(a[x],length(a[x])+1);
inc(a[x,0]);
a[x,a[x,0]]:=y;
setlength(a[y],length(a[y])+1);
inc(a[y,0]);
a[y,a[y,0]]:=x;
ad[x,y]:=1; ad[y,x]:=1;
end;
ok:=true;
for i:=1 to n do
if grad[i] mod 2=1 then
begin
ok:=false; break;
end;
if not ok then
writeln (g,-1)
else
begin
nr:=0;
euler(1);
for i:=nr downto 1 do write (g,retine[i],' ');
end;
close (F); close (G);
end.