Определить, удастся ли перевезти всех детей и взрослых на автобусе - 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).
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д