, заранее Вася готовит инвентарь для ролевой игры. В игре должны принять участие N игроков, каждый из которых будет изображать персонажа фантастического мира. В процессе игры каждый персонаж будет обладать некоторым уровнем X
, который представляет собой целое число от 1 до M.
Для обозначения уровня планируется использовать специальные значки двух цветов. Белый значок обозначает один уровень, а красный значок - K
уровней. Игрок, изображающий персонажа с уровнем X, должен иметь A белых значков и B красных значков, чтобы сумма (A+B⋅K)была равна X. При этом персонажу не разрешается иметь более чем (K−1) белых значков.
Значки для игры готовятся заранее, однако уровни персонажей заранее неизвестны. Для успешного проведения игры всем персонажам необходимо выдать соответствующее их уровням количество значков. Возникает вопрос: какое минимальное суммарное количество значков необходимо подготовить для успешного проведения игры при любых уровнях участвующих персонажей.
Требуется написать программу, которая по заданным числам N,M и K
вычисляет минимальное количество значков, которое необходимо подготовить для успешного проведения игры.
Формат ввода:
Дано три целых числа: N, M и K(1≤N≤104,1≤M≤105,1≤K≤105).
Формат вывода
Выведите одно целое число - минимальное количество значков, которое требуется подготовить.
Исходя из этого имеем (приведём всё к битам):
1) 5 бит
2) 15 байт = 15*8 бит = 120 бит
3) 1024 килобайт = 1024*1024 байт = 1048576 байт = 1048576 * 8 бит = 8388608 бит
4) 1024 мегабайт = 1024*1024*1024*8 бит = 8589934592 бит
5) 15 килобайт = 15*1024*8 бит = 122880 бит
Таким образом:
5 бит → 15 байт → 15 килобайт → 1024 килобайт → 1024 мегабайт
(хотя здесь и вычислять ничего не нужно - всё итак очевидно и без расчётов)
Надо перевести сначала 21 в двоичную, потом 2 в двоичную и потом 2002 в двоичную
Получается вот так:
21 = 10101
2=10
2002 = 11111010010
В итоге:
10101.10.11111010010