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

Обсуждение задачи 1272. Метро не в Екатеринбурге

This is my solution... But, I got WA on 14 tests... Please help me... Where my mistake is
Послано [LG]_NAPSTER 2 ноя 2007 00:59
My solution :

CONST
 MaxN = 10000;

TYPE
 Mas = Array [1 .. MaxN] of integer;

VAR
 A : Mas;
 n, k, m : integer;

PROCEDURE Init;
 Var
  i : integer;
   Begin
    for i := 1 to n do
     A[i] := i;
   End;

FUNCTION FindId(key : integer) : integer;
   Begin
    while A[key] <> key do
     key := A[key];
     FindId := key;
   End;

PROCEDURE Modify(p, q : integer);
 Var
  x, y : integer;
   Begin
    x := FindId(p);
    y := FindId(q);
     if x < y then
       A[y] := x
         else
       A[x] := y;
   End;

PROCEDURE In_Data;
 Var
  i, v, u     : integer;
  j, Ans, key : integer;
   Begin
    ReadLn(n, k, m);
    Init;
    Ans := 0;
     for i := 1 to k do
      begin
       ReadLn(v, u);
       Modify(v, u);
      end;
     for i := 1 to m do
      begin
       ReadLn(v, u);
        if A[v] <> A[u] then
          begin
           inc(Ans);
           key := A[u];
            for j := 1 to n do
             if A[j] = key then
               A[j] := A[v];
          end;
      end;
    WriteLn(Ans);
   End;

PROCEDURE Run;
   Begin
    In_Data;
   End;

BEGIN
  Run;
END.

Thanks... I'm sorry for my bad english... :(