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

Обсуждение задачи 1196. Экзамен по истории

Why WA 1 . HELP PLZ!!!
Послано Darhan_Akzholov 8 мар 2008 22:22
var tech : array [1..15000] of longint;
    pupil: array [1..1000000] of longint;
    i,m,n,kol:longint;
Procedure Find(k:longint);
Var l,r:longint;
begin
  l:=1;
  r:=m;
  while true do begin
    if k < pupil[(l+r) div 2] then
     begin
       if r=(l+r) div 2 then break;
       r:=(l+r) div 2;
     end
      else
    if k > pupil[(l+r) div 2] then
     begin
       if l=(l+r) div 2 then break;
       l:=(l+r) div 2;
     end
      else
    if k = pupil[(l+r) div 2] then begin inc(kol); l:=(l+r) div 2 + 1; end;
  end;
end;

Procedure Quick(l,r:longint);
Var i,j,k,q:longint;
begin
 i:=l; j:=r; k:=pupil[(l+r) div 2];
 repeat
   while pupil[i] < k do inc(i);
   while pupil[j] > k do dec(j);
   if i<=j then
    begin
      q:=pupil[i];
      pupil[i]:=pupil[j];
      pupil[j]:=q;
      inc(i);
      dec(j);
    end;
 until i>j;
 if r > i then Quick(i,r);
 if l < j then Quick(l,j);
end;

begin
 kol:=0;
 read(n);
 for i:=1 to n do read(tech[i]);
 read(m);
 for i:=1 to m do read(pupil[i]);
 Quick(1,m);
 for i:=1 to n do
  find(tech[i]);
 writeln(kol);
end.
Re: Why WA 1 . HELP PLZ!!!
Послано lhmhl 21 дек 2008 12:07
me too