Чтобы решить эту задачу, нам нужно понять, как слон ходит по шахматной доске.
Слон может двигаться только по диагоналям (то есть по клеткам, которые находятся на одинаковом расстоянии как в горизонтальном, так и в вертикальном направлении от исходной клетки).
Если мы поставим слона на клетку с номером строки R и номером столбца C, то слон будет атаковать все клетки по диагонали, которая идет через эту клетку. Мы можем найти количество клеток, которые слон атакует, подсчитав количество клеток на каждой из двух диагоналей, проходящих через данную клетку.
Давайте разберемся с этим подробнее.
Первая диагональ идет от левого верхнего угла доски до правого нижнего угла. На этой диагонали сумма номера строки и номера столбца каждой клетки одинакова. Мы можем использовать этот факт для вычисления номера первой клетки этой диагонали.
Номер первой клетки на этой диагонали будет равен R + C - 1, если R + C ≤ N, иначе это будет N.
Например, если R = 3, C = 4 и N = 6, то номер первой клетки на этой диагонали будет 3 + 4 - 1 = 6.
Количество клеток на этой диагонали можно найти, вычислив разницу между номером последней клетки на этой диагонали и номером первой клетки, а затем добавив единицу.
Номер последней клетки будет равен R + C - 1, если R + C ≤ N, иначе это будет N.
В нашем предыдущем примере номер последней клетки на этой диагонали будет 3 + 4 - 1 = 6.
Таким образом, количество клеток на этой диагонали будет 6 - 6 + 1 = 1.
Вторая диагональ идет от левого нижнего угла доски до правого верхнего угла. На этой диагонали разность номера строки и номера столбца каждой клетки одинакова. Мы можем использовать этот факт для вычисления номера первой клетки этой диагонали.
Номер первой клетки на этой диагонали будет равен R - C + N, если R - C ≥ 1, иначе это будет 1.
Например, если R = 3, C = 4 и N = 6, то номер первой клетки на этой диагонали будет 3 - 4 + 6 = 5.
Количество клеток на этой диагонали можно найти, вычислив разницу между номером последней клетки на этой диагонали и номером первой клетки, а затем добавив единицу.
Номер последней клетки будет равен R - C + N, если R - C ≥ 1, иначе это будет N.
В нашем предыдущем примере номер последней клетки на этой диагонали будет 3 - 4 + 6 = 5.
Таким образом, количество клеток на этой диагонали будет 5 - 5 + 1 = 1.
Теперь мы можем применить эти вычисления к нашей задаче.
Если R + C ≤ N, то слон будет атаковать N - (R + C - 1) + (R + C - 1) - 1 + 1 = 2N - (R + C) + 1 клеток.
Иначе слон будет атаковать N - (N - (R + C - 1)) + (N - (R + C - 1)) - 1 + 1 = 2(R + C - N) + 1 клеток.
Реализация алгоритма на языке Python:
python
N = int(input())
R = int(input())
C = int(input())
if R + C <= N:
print(2 * N - (R + C) + 1)
else:
print(2 * (R + C - N) + 1)
Где N - размер шахматной доски, R - номер строки, C - номер столбца, на который мы ставим слона.
В результате выполнения кода мы получим количество клеток, которые атакует слон, если его поставить на заданную клетку на шахматной доске.