Определить, удастся ли перевезти всех детей и взрослых на автобусе - 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).