
На летних каникулах Вася с одноклассниками поехали отдыхать в Приэльбрусье. В один погожий день
они решили подняться на вершину Эльбруса. Для этого им нужно набрать H метров высоты. Физическая подготовка ребят оказалась далеко не на высоте, из-за чего после каждого подъема на T метров половина школьников возвращалась вниз в лагерь. Если группа не делилась на две равные части — один школьник мог как спуститься, так и остаться. Зная, что в начале восхождения группа состояла из N человек, определите, какое наименьшее и наибольшее количество ребят смогло бы подняться на вершину Эльбруса. Формат ввода Заданы три натуральных числа H, T и N (1 ≤ H, T, N ≤ 10**9). Формат вывода Выведите два числа — наименьшее и наибольшее количество ребят. Пример Ввод Вывод 5 3 5 2 3

Ответы на вопрос

Ответ:
Вот ваше решение, товарищи
Объяснение:




Для решения этой задачи нужно рассмотреть различные сценарии восхождения на Эльбрус и вычислить минимальное и максимальное количество школьников, которые смогут подняться на вершину.
Первым делом рассмотрим сценарий, когда все школьники могут подняться на вершину без возвращения вниз. В этом случае минимальное и максимальное количество ребят будет равно N:
mathematicaМинимальное количество: N
Максимальное количество: N
Теперь рассмотрим сценарий, когда школьники должны делиться на две равные части и часть из них возвращается вниз после каждого подъема на T метров.
В таком случае, школьников, которые смогут подняться на вершину, будет зависеть от высоты H, пройденного расстояния T и начального количества школьников N.
Количество подъемов, которые могут сделать школьники, равно H / T (целочисленное деление). После каждого подъема половина школьников возвращается вниз, значит на каждом подъеме количество школьников уменьшается вдвое. Таким образом, количество школьников, которые смогут подняться на вершину, будет равно 2^(H / T). Однако, если в начале восхождения количество школьников N не является степенью двойки, то некоторые школьники могут быть вынуждены вернуться вниз, и количество поднимающихся школьников будет меньше.
Минимальное количество школьников будет равно наибольшей степени двойки, которая меньше или равна N:
cssМинимальное количество: 2^(log2(N))
Наибольшее количество школьников будет равно минимальному количеству школьников, умноженному на 2^(H / T - 1):
cssМаксимальное количество: 2^(log2(N)) * 2^(H / T - 1) = 2^(log2(N) + H / T - 1)
Таким образом, минимальное количество школьников будет равно 2^(log2(N)), а максимальное количество школьников будет равно 2^(log2(N) + H / T - 1).
Итоговый псевдокод решения задачи:
cmin_students = pow(2, int(log2(N)))
max_students = pow(2, int(log2(N) + H / T - 1))
вывести min_students и max_students
Пример решения:
scssH, T, N = 5, 3, 5
min_students = pow(2, int(log2(N))) = 2
max_students = pow(2, int(log2(N) + H / T - 1)) = 2^(1 + 5 / 3 - 1) = 4
вывести min_students и max_students
Ответ: 2 4


Похожие вопросы
Топ вопросов за вчера в категории Информатика







Последние заданные вопросы в категории Информатика
-
Математика
-
Литература
-
Алгебра
-
Русский язык
-
Геометрия
-
Английский язык
-
Химия
-
Физика
-
Биология
-
Другие предметы
-
История
-
Обществознание
-
Окружающий мир
-
География
-
Українська мова
-
Информатика
-
Українська література
-
Қазақ тiлi
-
Экономика
-
Музыка
-
Право
-
Беларуская мова
-
Французский язык
-
Немецкий язык
-
МХК
-
ОБЖ
-
Психология
-
Физкультура и спорт
-
Астрономия
-
Кыргыз тили
-
Оʻzbek tili