Cod sursa(job #248692)

Utilizator cheery_g1rlHaller Emanuela cheery_g1rl Data 26 ianuarie 2009 16:29:37
Problema Ciclu Eulerian Scor 0
Compilator fpc Status done
Runda Arhiva educationala Marime 1.15 kb
type lista=^element;
     element=record
          a:lista;
          i:longint;
             end;
var p:lista;
    n,m,i,a,b:longint;
    ok:boolean;
    v:array[1..10000] of lista;
    vv:array[1..10000] of longint;
procedure euler(nod:longint);
   var w:lista;
       q:longint;
   begin
     w:=v[nod];
     while w<>nil do
       begin
         if w^.i<>-1 then
            begin
              q:=w^.i;
              w^.i:=-1;
              euler(q);
            end;
            w:=w^.a;
       end;
     write(nod,' ');
   end;
begin
assign(input,'ciclueul.in'); reset(input);
assign(output,'ciclueul.out'); rewrite(output);
readln(n,m);
for i:=1 to n do v[i]:=nil;
for i:=1 to m do
   begin
     readln(a,b);
     if a<>b then
       begin
         inc(vv[a]); inc(vv[b]);
     new(p);
     p^.i:=b;
     p^.a:=v[a];
     v[a]:=p;
     new(p);
     p^.i:=a;
     p^.a:=v[b];
     v[b]:=p;
         end;
   end;
ok:=true;
for i:=1 to n do if vv[i] mod 2=1 then ok:=false;
if not ok then writeln('-1')
          else
            begin
              euler(a);
            end;

close(input); close(output);
end.