Cod sursa(job #252607)

Utilizator vladnVlad Nistorica vladn Data 4 februarie 2009 17:34:16
Problema Ciclu Eulerian Scor 0
Compilator fpc Status done
Runda Arhiva educationala Marime 0.93 kb
var a:array[1..10000,0..10000] of byte;
    f,g:text;
    c:array[1..100000] of longint;
    n,m,i,nc,x,y,xx:longint;
    ok:boolean;
procedure euler(nod:integer);
var i:integer;
begin
     for i:=1 to n do
         if a[i,nod]<>0 then
         begin
              dec(a[i,nod]);
              dec(a[nod,i]);
              euler(i);
         end;
     inc(nc);c[nc]:=nod;
end;
begin
assign(f,'ciclueuler.in');reset(f);
assign(g,'ciclueuler.out');rewrite(g);
read(f,n,m);
fillchar(a,sizeof(a),0);
xx:=0;
for i:=1 to m do
begin
     read(f,x,y);
     if xx=0 then xx:=x;
     inc(a[x,y]);inc(a[x,0]);
     inc(a[y,x]);inc(a[y,0]);
end;
ok:=true;
for i:=1 to n do if a[i,0] mod 2<>0 then  ok:=false;
if ok=true then
    begin
    nc:=0;
    euler(xx);
    if nc<m then writeln(g,'-1')
    else
        for i:=1 to nc-1 do write(g,c[i],' ');
        writeln(g);
    end
    else writeln(g,'-1');
close(g);
end.