Cod sursa(job #1371454)

Utilizator mirelabocsabocsa mirela mirelabocsa Data 3 martie 2015 21:33:48
Problema Ciclu Eulerian Scor 10
Compilator fpc Status done
Runda Arhiva educationala Marime 1.01 kb
program mire;
var f,g:text;
    n,m,i,sf:longint;
    eul:array [1..100000] of longint;
    a:array of array of longint;
procedure citire;
var x,y:longint;
begin
  assign(f,'ciclueuler.in'); reset(f);
  readln(f,n,m);
  setlength(a,n+1,n+1);
  for i:=1 to m do
    begin
      readln(f,x,y);
      a[x,y]:=1;
      a[y,x]:=1;
    end;
  close(f);
end;
procedure ciclu(ind:longint);
var k,j:longint;
begin
   for k:=1 to n do
     begin
        if a[eul[ind],k]=1 then
           begin
             a[eul[ind],k]:=0;
             a[k,eul[ind]]:=0;
             inc(sf);
             for j:=sf downto ind+1 do
                eul[j]:=eul[j-1];
             ind:=ind+1;
             eul[ind]:=k;
             ciclu(ind);
           end;
     end;
end;
begin
  citire;
  eul[1]:=1;
  i:=1;
  sf:=1;
  while eul[i]<>0 do
    begin
      ciclu(i);
      i:=i+1;
    end;
    assign(g,'ciclueuler.out'); rewrite(g);
      for i:=1 to sf do
        write(g,eul[i],' ');
    close(g);
end.