Ход слона
Ограничение по времени: 1
секунда
Ограничение по памяти: 256
мегабайт
Миша учится играть в шахматы. Самая любимая фигура Миши —
это слон, потому что слон может атаковать все клетки, которые находятся с ним на одной диагонали. Миша очень любознательный мальчик, поэтому он задумался: сколько клеток будет атаковать слон, если поставить его на клетку с номером строки R
и номером столбца C
на шахматной доске размером N×N
?
.
1 2 3 4
+--------------
1 | 1 2 2 2
2 | 2 4 4 4
3 | 2 4 4 4
4 | 2 4 4 4
Как мы видим, слон с клетки (2, 2) атакует 4 клетки, слон с клетки (1, 3) атакует 2 клетки.
Давайте реализуем этот алгоритм на псевдокоде:
function countAttackedCells(R, C, N):
count = 0
// Движение вправо вверх
row = R + 1
col = C + 1
while row <= N and col <= N:
count = count + 1
row = row + 1
col = col + 1
// Движение влево вверх
row = R - 1
col = C + 1
while row >= 1 and col <= N:
count = count + 1
row = row - 1
col = col + 1
// Движение вправо вниз
row = R + 1
col = C - 1
while row <= N and col >= 1:
count = count + 1
row = row + 1
col = col - 1
// Движение влево вниз
row = R - 1
col = C - 1
while row >= 1 and col >= 1:
count = count + 1
row = row - 1
col = col - 1
return count
Теперь мы можем использовать эту функцию для решения задачи. Например, если мы хотим узнать, сколько клеток атакует слон с клетки (2, 2) на доске 4x4, мы вызываем функцию countAttackedCells(2, 2, 4) и получаем результат 4.
Надеюсь, это помогло разобраться в решении задачи! Если возникнут еще вопросы, обязательно спрашивайте.Нажимая «Регистрация» или «Войти через Google», вы соглашаетесь с Публичной офертой, даете Согласие на обработку персональных данных, а также подтверждаете что вам есть 18 лет
Нажимая «Регистрация» или «Войти через Google», вы соглашаетесь с Публичной офертой, даете Согласие на обработку персональных данных, а также подтверждаете что вам есть 18 лет