ENG  RUSTimus Online Judge
Online Judge
Задачи
Авторы
Соревнования
О системе
Часто задаваемые вопросы
Новости сайта
Форум
Ссылки
Архив задач
Отправить на проверку
Состояние проверки
Руководство
Регистрация
Исправить данные
Рейтинг авторов
Текущее соревнование
Расписание
Прошедшие соревнования
Правила
вернуться в форум

Обсуждение задачи 1176. Гиперканалы

Does the Eulerian cycle always exist?
Послано Teragram 18 май 2004 15:04
I got WA on test 3.
Here is my code:


Program ex;
Const Rule              :Array [0..7] Of Integer
                        =(1,2,4,8,16,32,64,128);
Var G                   :Array [1..1001,0..125] Of Byte;
    Len,M               :Integer;
    St,Ar               :Array [1..32010] Of Integer;
    N,Be                :Integer;
Procedure Init;
Var P,Q,U               :Integer;
Begin
  Readln(N,Be);
  For P:=1 To N Do
    For Q:=1 To N Do Begin
      Read(U);
      If (U=0) And (P<>Q) Then Inc(G[P,(Q-1) Div 8],Rule[(Q-1) Mod 8]);
    End;
End;
Procedure Main;
Var I,J                 :Integer;
Begin
  M:=0;
  Len:=1;
  St[1]:=Be;
  Repeat
    I:=St[Len];
    J:=1;
    Repeat
      If G[I,(J-1) Div 8] And Rule[(J-1) Mod 8]>0 Then Break;
      Inc(J);
    Until J>N;
    If J<=N Then Begin
      Dec(G[I,(J-1) Div 8],Rule[(J-1) Mod 8]);
      Inc(Len);
      St[Len]:=J;
    End Else Begin
      Dec(Len);
      Inc(M);
      Ar[M]:=I;
    End;
  Until Len=0;
  If Ar[1]<>Be Then Begin
    Repeat
    Until False;
  End;
  For I:=1 To M-1 Do Writeln(Ar[I],' ',Ar[I+1]);
End;
Begin
  Init;
  Main;
End.
I got WA on test 2.............
Послано hello 18 май 2004 22:33
I can't find my mistake........
Who can give me some test........
This is my code :
--------------------------------------------------------

const
  Maxn = 1010 ;
var
  h : Array [0..Maxn,0..100] Of Integer ;
  l : Array [0..Maxn] Of Integer ;
  list : Array [0..66000] Of Integer ;
  len , n , first , x : LongInt ;

  procedure init ;
    var
      i , j , k : Integer ;
    begin
     read ( n , first ) ;
     for i := 1 to n do
      for j := 1 to n do
       begin
        read ( k ) ;
        if ( k = 0 ) and ( i <> j ) then
         begin
          Inc ( l[i] ) ;
          h[i,l[i]] := j ;
         end;
       end;
    end;

  procedure Dfs ( k : Integer ) ;
    begin
     While l[k] > 0 do
      begin
       Dec ( l[k] ) ;
       Dfs ( h[k,l[k]+1] ) ;
      end;
     Inc ( len ) ;
     list[len] := k ;
    end;

  procedure out ;
    var
      i : LongInt ;
    begin
     if n > 1 then
      begin
       write ( list[1] ) ;
       for i := 2 to len - 1 do
        begin
         writeln ( ' ' , list[i] ) ;
         write ( list[i] ) ;
        end;
       writeln ( ' ' , list[len] ) ;
      end;
    end;

begin
 init ;
 Dfs ( first ) ;
 out  ;
end.
Re: WA#3
Послано Sergey Baskakov, Raphail and Denis 13 мар 2005 10:02
I was getting WA3 until understood, that my program gives a wrong output on the following test:
3 2
0 0 1
1 0 0
0 1 0
To my mind, the only possible answer is as follows:
2 3
3 1
1 2
And my old solution output just the opposite, i.e.
2 1
1 3
3 2
Good luck (!

rafailka.

Edited by author 13.03.2005 10:02
Re: WA#3
Послано Yu Xin 2 июн 2005 18:29
Thanks.