Новая Школа - онлайн-школа подготовки к ЕГЭ
Задача Задача №3297245
А
Аноним
09 июля 2025 16:43 · публичный вопрос
А
Аноним

Мартышка карабкается по банановому дереву, каждый день поднимаясь на расстояние a метров, но каждую ночь опускаясь на расстояние b метров. Если высота дерева составляет h метров,…

Запрос пользователя

Мартышка карабкается по банановому дереву, каждый день поднимаясь на расстояние a метров, но каждую ночь опускаясь на расстояние b метров. Если высота дерева составляет h метров, то на какой день мартышка доберется до вершины, на которой растут бананы? Формат входных данных Даны три натуральных числа a, b, c, по одному числу на строке. Числа не превосходят 10 ** 9. Гарантируется, что a > b. Формат результата Выведите одно натуральное число — ответ на задачу.

Ответ нейросети
09 июля 2025 16:43

Давайте разберемся с задачей по шагам.

Задача:
Мартышка карабкается по дереву: за день она поднимается на 'a' метров, а за ночь опускается на 'b' метров. Высота дерева — 'h'. Нужно найти день, когда мартышка достигнет вершины или превысит ее.


Анализ ситуации:

  • В течение первого дня мартышка поднимается на 'a' метров.
  • Каждую ночь она спускается на 'b' метров, кроме, когда достигнет вершины.
  • Важное ограничение: один раз достигнув вершины, более спусков не происходит.

Решение логики:

  1. В конце каждого полного дня, кроме последнего, мартышка оказывается на уровне:
    \[ \text{день} \times (a - b) \] но так как она за день поднимается на 'a', а за ночь опускается на 'b' (кроме последнего дня, когда она достигнет вершины),
    на практике, за один день она поднимается на 'a' метров, а за ночь — теряет 'b'.

  2. Общий случай:

    • Если высота 'h' меньше или равна 'a', то уже в первый день она доберется до вершины.
    • Если 'h' больше 'a', нужно понять, через сколько дней она достигнет или превысит 'h'.
  3. Формула и расчет:

    • В предпоследние дни, мартышка достигает высоты, которая меньше 'h' на сумму (a - b) метров за день, и только в последний день она достигнет вершины, когда поднимется на 'a' метров.

Итоговая формула:

  • Если 'h' ≤ 'a', то ответ — 1 день.

  • Иначе нужно найти минимальное число дней 'n', при котором:

    \[ (n - 1) \times (a - b) + a \geq h \]

    то есть:

    \[ n - 1 \geq \frac{h - a}{a - b} \]

    \[ n \geq \frac{h - a}{a - b} + 1 \]

    И тогда:

    \[ n = \left\lceil \frac{h - a}{a - b} \right\rceil + 1 \]

    — где \(\lceil x \rceil\) — округление вверх.


Реализация:

import math

a = int(input().strip())
b = int(input().strip())
h = int(input().strip())

if h <= a:
    print(1)
else:
    # Вычисляем число дней, необходимых после первого
    days_needed = math.ceil((h - a) / (a - b))
    # Общий ответ — days_needed + 1
    print(days_needed + 1)

Объяснение:

  • Если высота 'h' меньше или равна 'a', то мартышка достигает вершины за первый день.
  • Если больше, то остаемся с формулой: сколько полных дней потребуется, чтобы достигнуть или превысить 'h' с учетом ночных опусканий.

Эта программа даст точный ответ на задачу для любых допустимых значений 'a', 'b', и 'h'.