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

Обсуждение задачи 1022. Генеалогическое дерево

why did my code get WA?
Послано cool_wind_ 1 ноя 2002 19:04
#include<stdio.h>
void main()
{ int i,j,n,p,map[101][101],seq[101],in[101],head,tail;
  scanf("%d",&n);
  for(i=1;i<=n;i++)
    for(j=1;j<=n;j++)
      map[i][j]=0;

  for(i=1;i<=n;i++)
  { scanf("%d",&p);
    while(p)
    { map[i][p]=1;
      scanf("%d",&p);
    }
  }

  for(i=1;i<=n;i++)
  { in[i]=0;
    for(j=1;j<=n;j++)
      if(j!=i&&map[j][i]) in[i]++;
  }

  head=tail=0;
  do
  { for(i=1;i<=n;i++)
    { if(in[i]==0)
      { in[i]=-1;
    seq[tail++]=i;
      }
    }
    while(head<tail)
    { for(j=1;j<=n;j++)
    if(seq[head]!=j&&map[seq[head]][j]&&in[j]!=-1)
      in[j]--;
      head++;
    }
  }while(tail<n);

  for(i=0;i<n-1;i++)
    printf("%d ",seq[i]);
  printf("%d\n",seq[i]);

}