Ограничения: время – 500ms/1000ms, память – 64MiB Ввод: input.txt или стандартный ввод Вывод: output.txt или стандартный вывод
Послать решение Blockly Посылки Темы Где Обсудить (0)
На большом складе загорелись несколько бочек с горючими материалами. Пожарные пытаются их потушить.
Один пожарный с огнетушителем не может потушить загоревшуюся бочку, он может только контролировать возгорание,
не давая огню перекинуться на другие бочки. Несколько пожарных могут справиться с одним возгоранием.
Для тушения одной бочки `K` пожарным (`K\ >\ 1`) потребуется `10/K` минут. Тушение бочки происходит равномерно,
с постоянной скоростью. Если к тушению очага пожара присоединяется новые пожарные, то время тушения
остатков огня вычисляется по формуле `X*10/K`, где `X` – доля очага возгорания, непогашенного за предыдущий
период времени, а `K` – новое количество пожарных. Если горящую бочку никто не контролирует, то от огня могут
загореться другие бочки. Поэтому возле каждого возгорания должен быть как минимум один пожарный с огнетушителем.
Если пожарный приступил к тушению какой-нибудь бочки, то он не отходит от нее, пока она не будет погашена.
После завершения тушения он может помочь потушить бочку, которую уже тушат другие пожарные. Также будем считать,
что время на переход от одного очага пожара до другого равно 0.
Напишите программу, которая по количеству горящих бочек и числу пожарных определит минимальное время, необходимое
для тушения пожара.
Во входном файле содержится два целых числа через пробел – число горящих бочек `N` и число пожарных `P` (`0\ <\ N\ <\ P\ ≤\ 100`).
В выходной файл вывести минимальное время для тушения пожара с шестью десятичными знаками.