Определить, удастся ли перевезти всех детей и взрослых на автобусе - Free Pascal

Узнай цену своей работы

Формулировка задачи:

Для заезда в оздоровительный лагерь организаторы решили заказать автобусы. Известно, что в лагерь собираются поехать N детей и M взрослых. Каждый автобус вмещает K человек. В каждом автобусе, в котором поедут дети, должно быть не менее двух взрослых. Определите, удастся ли отправить в лагерь всех детей и взрослых, и если да, то какое минимальное количество автобусов требуется для этого заказать. У меня решение есть, но говорят что неправильное:
program Avtobus;
 
var
   {n - children}
   {m - grownups}
   {k - maximal people in a bus}
   n, m, k, avtobuses:integer;
 
begin
   Readln(n,m,k);
   avtobuses:= (m+n) div K;
   if (m mod 2)=1 then inc(avtobuses);
   if avtobuses <= (M div 2) then Writeln(avtobuses)
   else Writeln(0);
end.

Решение задачи: «Определить, удастся ли перевезти всех детей и взрослых на автобусе»

textual
Листинг программы
program Avtobus;
var
 {n - children}
 {m - grownups}
 {k - maximal people in a bus}
 n, m, k:integer;
begin
 Readln(n,m,k);
if (m div 2)*k<2*(m div 2)+n then writeln ('No solution')else writeln((m+n+k-1)div k);
end.

Объяснение кода листинга программы

  1. Объявлены три переменные: n - количество детей, m - количество взрослых, k - максимальное количество людей в автобусе.
  2. Ввод значений переменных с помощью функции Readln.
  3. Если (m div 2)k<2(m div 2)+n то выводится сообщение No solution.
  4. Иначе выводится количество людей, которое можно перевезти на автобусе ((m+n+k-1)div k).

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

9   голосов , оценка 4.111 из 5
Похожие ответы