Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 25.01.2017, 19:46   #1
wwwhat_TT
Новичок
Джуниор
 
Регистрация: 25.01.2017
Сообщений: 3
По умолчанию задача "Коньки" на free pascal

Помогите, пожалуйста, решить задачу:
В 179 школе есть много коньков самых разных размеров. Школьник может надеть коньки любого размера, который не меньше размеров его ноги. Известны размеры всех коньков и размеры ног школьников. Определите, какое наибольшее число школьников сможет одновременно пойти покататься.

Входные данные
Первая строка содержит список натуральных чисел размеры коньков. Вторая строка содержит список размеров ног школьников.

Выходные данные
Выведите единственное число — наибольшее количество школьников, которое сможет пойти на каток.

Примеры
входные данные
41 40 39 42
42 41 42
выходные данные
2
wwwhat_TT вне форума Ответить с цитированием
Старый 25.01.2017, 22:34   #2
Plague
Забанен
Форумчанин Подтвердите свой е-майл
 
Аватар для Plague
 
Регистрация: 01.11.2006
Сообщений: 420
По умолчанию

Отсортируйте массив для начала.
Если ничто другое не помогает, прочтите, наконец, инструкцию! Аксиома Кана
Plague вне форума Ответить с цитированием
Старый 27.01.2017, 23:30   #3
wwwhat_TT
Новичок
Джуниор
 
Регистрация: 25.01.2017
Сообщений: 3
По умолчанию

Вот, что я смог придумать, но 9 тестов не проходят - "Неправильный ответ"
Код:
program doi;
uses crt;
type mas=array of longint;
var n,o,i,j,k,w:longint; a,b:mas; s:string;
procedure sort(p:mas;l:longint);
var x:longint;
begin
  for i:=1 to l-1 do
   for j:=1 to l-i do
    if p[j]>p[j+1] then
     begin
      x:=p[j];
      p[j]:=p[j+1];
      p[j+1]:=x;
     end;
end;
begin
 assign (input, 'input.txt');
 assign (output, 'output.txt');
 reset (input);
 rewrite (output);
 i:=-2;
 while not eof(input) do
  begin
  readln (input,s);
  inc(i);
  writeln (output,i,' ',s);
  end;
 close (output);
 close (input);
 reset (output);
 read (output,k);
 n:=1;
 o:=1;
 while not eof(output) do
  begin
  if k=-1 then begin n:=n+1; setlength (a,n); read (output,a[n-1]); end;
  if a[n-1]=0 then begin k:=0; n:=n-2; end;
  if (k=0) and not eof(output) then begin
   setlength (b,o+1);
   read (output,b[o]);
   o:=o+1;
   end;
   end;
  o:=o-2;
 close (output);
 rewrite (output);
 sort (a,n);
 sort (b,o);
 i:=1; j:=1; w:=0;
 while (i<=n)and(j<=o) do
  if a[i]>=b[j] then begin i:=i+1; j:=j+1; w:=w+1; end else
   i:=i+1;
 writeln (output,w);
 close (output);
end.
wwwhat_TT вне форума Ответить с цитированием
Старый 27.01.2017, 23:31   #4
wwwhat_TT
Новичок
Джуниор
 
Регистрация: 25.01.2017
Сообщений: 3
По умолчанию

Помогите, пожалуйста, найти ошибку
wwwhat_TT вне форума Ответить с цитированием
Старый 28.01.2017, 13:49   #5
FPaul
Форумчанин
 
Регистрация: 25.01.2015
Сообщений: 472
По умолчанию

Мне кажется, что сортировка неправильно реализована. При сортировке "пузырьком" переменные i и j должны изменяться в противоположных направлениях.
FPaul вне форума Ответить с цитированием
Старый 28.01.2017, 13:52   #6
FPaul
Форумчанин
 
Регистрация: 25.01.2015
Сообщений: 472
По умолчанию

Да и бред какой-то при работе с файлами - чтение из выходного файла - это смелое и революционное решение.
FPaul вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Задача для Free Pascal svob Паскаль, Turbo Pascal, PascalABC.NET 10 17.12.2012 15:51
Задача для Free Pascal svob Паскаль, Turbo Pascal, PascalABC.NET 13 23.11.2012 07:32
Задача(Free Pascal) Nastya1221 Помощь студентам 0 01.05.2012 13:20
Задача на цикл free Pascal }|{eka Паскаль, Turbo Pascal, PascalABC.NET 1 02.04.2012 05:11
Задача(Free Pascal) Nastya1221 Помощь студентам 0 21.02.2012 17:36