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