オラロを探す(図論アルゴリズム)

2792 ワード

Description
図に1つの筆画が存在する場合、1つの筆画の経路をオラロードと呼ぶ
Input
第1行n,mには、n個の点、m個のエッジがあり、以下に、各エッジが接続されている2点を説明する.
Output
オラかオラ帰り道
Sample Input
 
 
   
 
   
 
   
 
   
 
   
 
   

 

Sample Output

 

 
   
 
   
 
   
             ,                        ,    ,      ,         ,                ,           。



const
  maxn=100;
var
  g:array[1..maxn,1..maxn]of longint;
  du,circuit:array[1..maxn]of longint;
  n,e,circuitpos,i,j,x,y,start:longint;

procedure find_circuit(i:longint);
  var
    j:longint;
  begin
    for j:=1 to n do
      if g[i,j]=1 then begin g[i,j]:=0; g[j,i]:=0; find_circuit(j); end;
    inc(circuitpos);
    circuit[circuitpos]:=i;
end;

begin
  fillchar(g,sizeof(g),0);
  readln(n,e);
  for i:=1 to e do
    begin
      readln(x,y);
      g[x,y]:=1;
      g[y,x]:=1;
      inc(du[x]);
      inc(du[y]);
    end;
  start:=1;
  for i:=1 to n do
    if du[i] mod 2=1 then start:=i;
  circuitpos:=0;
  find_circuit(start);
  for i:=1 to circuitpos do
    write(circuit[i],' ');
  writeln;
end.



: http://blog.sina.com.cn/s/blog_83ac6af80102v0sk.html