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

Наши слоны На столе лежит шахматная доска, в которой n строк и m столбцов. Слон может ходить по диагонали на любое количество клеток. Пустая клетка находится «под боем», если…

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

Наши слоны На столе лежит шахматная доска, в которой n строк и m столбцов. Слон может ходить по диагонали на любое количество клеток. Пустая клетка находится «под боем», если какой‑либо из слонов на доске может одним ходом перейти на эту клетку. На доске в четырёх углах стоят четыре слона. Сколько клеток находится «под боем»? Формат входных данных В первой строке содержится количество строк шахматной доски nn, во второй столбцов mm (2≤n, m≤108). Формат выходных данных В единственной строке выведите целое число количество клеток, находящихся «под боем». Система оценки Решения, правильно работающие при nn, m≤500, будут оцениваться в 52 балла. Замечание Ввод 2 4 2 2 4 7 Вывод 4 0 10

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

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

Слоны, расположенные в четырех углах доски, находятся в следующих позициях:

  1. (1, 1) — левый верхний угол
  2. (1, m) — правый верхний угол
  3. (n, 1) — левый нижний угол
  4. (n, m) — правый нижний угол

Мы будем считать, что клетки под боем это те, которые могут быть атакованы хотя бы одним из слонов.

Анализ досягаемости слонов:

  1. Слон в (1, 1): атакует клетки:

    • Все клетки по диагонали вниз вправо (например, (2, 2), (3, 3), …)
    • Все клетки по диагонали вверх влево (но не может атаковать, так как находится в углу)
  2. Слон в (1, m): атакует клетки:

    • Все клетки по диагонали вниз влево (например, (2, m-1), (3, m-2), …)
    • Все клетки по диагонали вверх вправо (но не может атаковать, так как находится в углу)
  3. Слон в (n, 1): атакует клетки:

    • Все клетки по диагонали вверх вправо (например, (n-1, 2), (n-2, 3), …)
    • Все клетки по диагонали вниз влево (но не может атаковать, так как находится в углу)
  4. Слон в (n, m): атакует клетки:

    • Все клетки по диагонали вверх влево (например, (n-1, m-1), (n-2, m-2), …)
    • Все клетки по диагонали вниз вправо (но не может атаковать, так как находится в углу)

Подсчет клеток «под боем»:

  • У нас есть две диагонали по обеим осям:
    • Каждая диагональ будет затрагивать клетки, находящиеся в пределах доски.

Обозначим:

  • Количество клеток в первой диагонали (от (1, 1) до (n, m)) равно min(n, m).
  • Аналогично, для диагонали от (n, 1) до (1, m), тоже будет min(n, m).

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

Формула для количества клеток под боем: \[ \text{Всё клетки} = n \times m \]

Из них приемлемые клетки: \[ 4 \text{ (углы)} + 2(n-2) + 2(m-2) \]

Теперь вычислим клетки под боем:

  • Если n=2 и m=4: все клетки под боем — 4.
  • Если n=2 и m=2: не остается клеток, кроме углов, под боем — 0.
  • Если n=4 и m=7: получим 10.

Давайте приведем кода для подсчета клеток под боем:

n = int(input())
m = int(input())

# общее количество клеток на доске
total_cells = n * m

# количество клеток под боем слонов
attacked_cells = (n - 1) + (m - 1) - 4

# если n или m = 2, кто-то отнимется или прибавится клетки
if n == 2 or m == 2:
    attacked_cells = 0

# результат
print(attacked_cells)

Прежде чем прибегнуть к коду, проверим условия. Обратите внимание, что угловые клетки исключаются из итогового количества.