Новая Школа - онлайн-школа подготовки к ЕГЭ
Задача Задача №1980826
А
Аноним
23 октября 2024 06:33 · публичный вопрос
А
Аноним

Антон Алексеевич, преподаватель математики в старшей школе, решил продемонстрировать практическое применение математических расчётов и провести мастер‑класс по очистке квадратной…

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

Антон Алексеевич, преподаватель математики в старшей школе, решил продемонстрировать практическое применение математических расчётов и провести мастер‑класс по очистке квадратной маркерной доски длины n квадратной губкой длины a. Антон Алексеевич использует свой фирменный метод, затирая каждый сантиметр доски без лишних движений. Он начинает с верхнего левого угла доски, двигаясь слева направо, затем вниз, влево, вверх, повторяя этот процесс, пока вся доска не будет очищена, но не проходя губкой по тем местам, которые уже очищены (см. рисунок ниже). Губка не вращается во время стирания с доски. Гарантируется, что длина стороны губки делит длину стороны доски без остатка. Определите длину ломаной линии, которую описывает верхний левый угол квадратной губки при затирании квадратной доски. Формат входных данных Первая строка содержит целое число n (1≤n≤109) длину стороны доски. Вторая строка содержит целое число a (1≤a≤109, a≤n) длину стороны губки. nn делится на a без остатка. Формат выходных данных В единственной строке выведите число длину ломаной, которую пройдёт левый верхний угол губки. Обратите внимание, что ответ в этой задаче может превышать возможное значение 32‑битной целочисленной переменной, поэтому необходимо использовать 64‑битные целочисленные типы данных (тип int64 в языке Pascal, тип long long в C++, тип long в Java и C#). Система оценки Решения, правильно работающие при n, a≤103, будут оцениваться в 40 баллов. Замечание Проиллюстрируем пример к условию. Жёлтым на схеме обозначена губка, голубым очищенная область, красным маршрут левого верхнего угла губки. Ввод 6 2 Вывод 16

Ответ нейросети
23 октября 2024 06:33

Для решения задачи давайте рассмотрим, как движется верхний левый угол губки при очистке доски, а также каковы размеры доски и губки.

При заданных значениях:

  • n — длина стороны доски.
  • a — длина стороны губки (гарантируется, что n делится на a без остатка).

Сначала определим, сколько раз губка будет двигаться вдоль каждой стороны квадрата:

  1. Количество "блоков" губки по одной стороне доски: \( m = \frac{n}{a} \).
  2. Каждый блок губки имеет размеры a × a и при его движении угол губки будет двигаться по периметру квадрата и наоборот.

Траектория движения верхнего левого угла губки можно описать следующим образом:

  • Сначала угол движется вправо на (m - 1) раз, затем опускается вниз на (m - 1), затем движется влево на (m - 1), снова поднимается на (m - 1).
  • Это движение продолжается, пока губка не очистит всю поверхность доски.

Теперь давайте посчитаем длину ломаной линии, описываемую верхним левым углом губки:

  1. При каждом смещении вправо, вниз, влево и вверх он перемещается на a.
  2. Общее количество ходов, пока будет очищена доска, составит:
    • \( 2 \times (m - 1) \) горизонтальных перемещений + \( 2 \times (m - 1) \) вертикальных перемещений.
    • Количество раз, когда губка спускается или поднимается вниз, равно (m - 1).

Таким образом, формула длины ломаной линии будет следующей:

\[ L = (m - 1) \times (a + a) \times 2 = 4 \times (m - 1) \times a \]

Теперь подставим: \[ m = \frac{n}{a} \] \[ L = 4 \times \left(\frac{n}{a} - 1\right) \times a \]

Это упрощается до: \[ L = 4 \times (n - a) \]

Таким образом, финальная формула для длины ломаной линии, описываемой углом губки, будет:

\[ L = 4 \times (n - a) \]

Теперь, давайте напишем алгоритм для вычисления необходимого значения.

Пример кода на Python

n = int(input())
a = int(input())

length_of_path = 4 * (n - a)
print(length_of_path)

Этот код считывает два числа, вычисляет длину ломаной линии и выводит результат.