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

Обсуждение задачи 1106. Две команды

WA #14
Послано Jane 7 дек 2011 23:24
I used BFS.
#include<stdio.h>
#define maxn 1200
int a[maxn][maxn], queue[maxn], n, d, c, ans[maxn], k;
int main(){
    scanf("%d",&n);
    for(int i=1;i<=n;i++){
        for(int j=1;j<n;j++){
            scanf("%d",&a[i][j]);
            if(a[i][j]>0) a[i][0]++;
            else break;
        }
    }
    if(n<=1){
             printf("0");
             return 0;
       }
    for(int i=1;i<=n;i++)
       if(a[i][0]==0){
             printf("0");
             return 0;
       }
    d = 1;
    for(int i=1;i<=n;i++){
        if(ans[i]==0){
           ans[i] = 1;
           k++;
           c++;
           queue[c] = i;
           do{
              for(int i=1;i<=a[queue[d]][0];i++){
                 if(ans[a[queue[d]][i]]==0){
                     ans[a[queue[d]][i]]=ans[queue[d]]+1;
                     if(ans[a[queue[d]][i]]%2) k++;
                     c++;
                     queue[c] = a[queue[d]][i];
                 }
              }
              d++;
           }while(d<=c);
        }
    }
    printf("%d\n",k);
    for(int i=1;i<=n;i++)
       if(ans[i]%2) printf("%d ",i);
    return 0;
}
Help me! please!
Re: WA #14
Послано falicos 12 мар 2012 01:04
mistake in this operator
j<n. Wrong input
for(int i=1;i<=n;i++){
        for(int j=1;j<n;j++){
            scanf("%d",&a[i][j]);