EduBrick

Два повода остановиться

2000 мс · 256 МБ · всё или ничего

Число aa на каждом шаге умножается на mm. Сколько шагов пройдёт, прежде чем оно станет строго больше SS?

Разрешено сделать не больше kk шагов. Если за kk шагов превысить SS не удалось, выведите 1-1.

Формат ввода

Одна строка: aa от 11 до 101810^{18}, mm от 11 до 10910^9, SS от 11 до 101810^{18}, kk от 00 до 10610^6.

Формат вывода

Одно число: количество шагов или 1-1.

Примеры

ввод
1 2 10 100
вывод
4

Примечание

Два условия выхода сразу — while (steps < k && a <= s). Порядок в && здесь не важен, но привычка ставить дешёвую проверку первой полезна.

Главная ловушка — в самом умножении. Писать if (a * m > s) нельзя: при больших a произведение переполнится ещё до сравнения. Сравнивайте до умножения: if (a > s / m).

Войдите, чтобы отправлять решения.