def count_attacked_cells(n, m, bishops):
# Создаем пустую доску n x m, изначально все клетки не атакованы (False)
board = [[False for _ in range(m)] for _ in range(n)]
# Все направления, по которым слон может двигаться (диагонали)
directions = [(-1, -1), (-1, 1), (1, -1), (1, 1)]
# Обрабатываем каждого слона
for bishop in bishops:
x, y = bishop
x -= 1 # переводим координаты в 0-индексацию
y -= 1
# Помечаем клетку слона
board[x][y] = True
# Для каждого направления идем по диагонали, пока не выйдем за пределы доски
for dx, dy in directions:
nx, ny = x + dx, y + dy
while 0 <= nx < n and 0 <= ny < m:
board[nx][ny] = True
nx += dx
ny += dy
# Подсчитываем количество атакованных клеток
attacked_cells = sum(sum(row) for row in board)
return attacked_cells
# Пример ввода
n = 5 # количество строк
m = 5 # количество столбцов
bishops = [(1, 1), (3, 3)] # позиции слонов (1-индексация)
# Вызов функции
result = count_attacked_cells(n, m, bishops)
print(result)