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

Обсуждение задачи 1045. Забавная игра

Oscar Can they fly to the same airport??? [2] // Задача 1045. Забавная игра 14 мар 2003 18:54
What happens if you got an entry like this one:

5 1
1 2
1 3
1 4
1 1

My program would say that it'll win flying to airport number 2
because I think it's kinda obvious that if the airport is exploted
then it won't be able to land there... but is that really true?
Oscar Still getting WA [1] // Задача 1045. Забавная игра 14 мар 2003 19:46
I'm still getting WA, can anyone help me?

I haven't found a reason for my program not to work, first I thought
it was because the entry was making a flight to the same airport, now
I fixed that but I still get WA.

If anyone's got interesting test cases please post them.

Or if you can help me find out the weakness of my code I'll really
apreciate it.

/*******************************************************/
#include <stdio.h>

int a[1000][1000];
int suma[1000];
int n, k, i, j, aux1, aux2, local, min, igual;

void main(void)
     {
     min=1500;
     local=0; igual = 0;
     scanf("%d %d", &n,&k);
     for (i=0; i<n+1; i++){
     for (j=0; j<n+1; j++)
          a[i][j]=0;
     suma[i]=0;
     }

     for (i=0; i<n-1; i++)
     {
     scanf("%d %d", &aux1,&aux2);
     a[aux1][aux2]=1;
     a[aux2][aux1]=1;
     if ((aux1 == aux2) && (aux2 == k))
        igual = 1;
     }
     for (i=1; i<n+1; i++)
     {
     for (j=1; j<n+1; j++)
         if (a[i][j] == 1)
         suma[i]++;
     }
   for (i=1; i<n+1; i++)
     {
     if (a[i][k] == 1)
        if (suma[i]==1)
           {
           local=i;
           break;
           }
        else
        if (n%2==0)
        if (suma[i]%2 == 0)
           if (suma[i]<min)
          {
          min = suma[i];
          local=i;
          }
        else
        if (suma[i]%2 == 1)
           if (suma[i]<min)
          {
          min = suma[i];
          local=i;
          }
     }
        if (igual == 1)
        local = k;
        if (local != 0)
        printf("First player wins flying to airport %d",
local);
        else
        printf("First player loses");

     }
Locomotive my short code has just a DFS... // Задача 1045. Забавная игра 14 мар 2003 22:29
Aidin_n7@hotmail.com