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

Обсуждение задачи 1069. Код Прюфера

..I am O(n^2) too and got AC..
Послано grayluck 13 окт 2009 15:09
I use a very simple algorithm..my code is very short..
*just (for i:=1 to n do)check if the number appears in the A set of numbers after i.
*set down the father of each number.
*Just output.

(i'm sorry that my English is really bad..)

var
  con,temp,i,j:longint;
  fin:array[1..7500]of boolean;
  b,a,fa:array[1..7500]of integer;
begin
  {$IFNDEF ONLINE_JUDGE}
  assign(input,'input.in');reset(input);
  assign(output,'output.out');rewritE(output);
  {$ENDIF}
  reaD(temp);
  con:=0;
  while temp<>0 do
    begin
      inc(con);
      a[con]:=temp;
      inc(b[temp]);
      read(temp);
    end;
  for i := 1 to con do
    for j := 1 to con+1 do
      if (not fin[j])and(b[j]=0) then
        begin
          fin[j]:=true;
          fa[j]:=a[i];
          deC(b[a[i]]);
          break;
        end;
  for i := 1 to con+1 do
    begin
      write(i,':');
      for j := 1 to con+1 do
        if (fa[j]=i)or(fa[i]=j) then
          write(' ',j);
      writeln;
    end;
end.

Edited by author 13.10.2009 15:09