Автор: | Центральная предметно-методическая комиссия | Ограничение времени: | 1 сек | |
Входной файл: | Стандартный вход | Ограничение памяти: | 512 Мб | |
Выходной файл: | Стандартный выход | |||
Максимальный балл: | 100 |
В ряд выписаны натуральные числа от 1 до n и задано натуральное число k.
Выполняется один или несколько шагов по удалению чисел в этом ряду. На очередном шаге оставшиеся числа просматриваются в возрастающем порядке, и каждое k-е число удаляется. Если после очередного шага осталось меньше k чисел, то процесс удаления чисел завершается.
Необходимо определить, на каком шаге будет удалено число n, или выяснить, что оно не будет удалено до завершения процесса.
Например, пусть n = 13, k = 2.
Таким образом, число 13 будет удалено на третьем шаге.
Требуется написать программу, которая по заданным числам n и k определяет, на каком шаге будет удалено число n.
Первая строка входных данных содержит целое число n.
Вторая строка входных данных содержит целое число k.
Требуется вывести одно целое число — номер шага, на котором будет удалено число n, или число 0, если число n не будет удалено.
3 ≤ n ≤ 1018
2 ≤ k ≤ 100, k < n
Баллы за каждую подзадачу начисляются только в случае, если все тесты этой подзадачи и необходимых подзадач успешно пройдены.
Подзадача | Баллы | Дополнительные ограничения | Необходимые подзадачи | Информация о проверке | |
---|---|---|---|---|---|
n | k | ||||
1 | 16 | 3 ≤ n ≤ 1000 | k = 2 | полная | |
2 | 10 | 3 ≤ n ≤ 1018 | k = 2 | 1 | полная |
3 | 14 | 3 ≤ n ≤ 1000 | 2 ≤ k ≤ 100, k < n | 1 | полная |
4 | 20 | 3 ≤ n ≤ 106 | 2 ≤ k ≤ 100, k < n | 1, 3 | полная |
5 | 40 | 3 ≤ n ≤ 1018 | 2 ≤ k ≤ 100, k < n | 1 — 4 | полная |
№ | Стандартный вход | Стандартный выход |
---|---|---|
1 |
|
|