Написать программу на языке Pascal/ сколько клеток будет атаковать слон, если поставить его на клетку с номером строки R и номером столбца C на шахматной доске размером N×N?
Первая строка содержит целое число N(3≤N≤109) — размер шахматной доски. Вторая строка содержит целое число R (1≤R≤N) —номер строки, в которой расположен слон. Третья строка содержит целое число C (1≤C≤N)— номер столбца, в котором расположен слон. Строки и столбцы нумеруются с единицы, начиная с левого нижнего угла. Выведите одно целое числ—количество клеток, которые находятся под атакой слона.
pascal
var
N, R, C, count: integer;
diagonal1, diagonal2, diagonal3, diagonal4: integer;
begin
readln(N);
readln(R);
readln(C);
diagonal1 := R + C - 1;
diagonal2 := N + R - C;
diagonal3 := R - C + N;
diagonal4 := R + C - N;
count := N + N - 1; // количество клеток на главных и побочных диагоналях N + N - 1
// Если слон находится на одной из главных или побочных диагоналей,
// уменьшаем счетчик на количество клеток, которые находятся в этой диагонали
if R + C - 1 > 0 then
count := count - diagonal1;
if N + R - C > 0 then
count := count - diagonal2;
if R - C + N > 0 then
count := count - diagonal3;
if R + C - N > 0 then
count := count - diagonal4;
writeln(count);
end.
В этой программе мы сначала считываем размер доски N, а затем номер строки R и номер столбца C, где расположен слон. Затем мы вычисляем номера диагоналей для слона, используя формулы R + C - 1, N + R - C, R - C + N и R + C - N.
Затем мы инициализируем переменную count значением N + N - 1, поскольку это количество клеток на главных и побочных диагоналях.
Затем мы проверяем каждую диагональ и, если слон находится на ней, уменьшаем счетчик на количество клеток, которые находятся в этой диагонали.
Наконец, мы выводим значение счетчика на экран.
Пример работы программы:
Входные данные:
4
2
3
Выходные данные:
5
В данном примере, размер доски N равен 4, номер строки R равен 2, и номер столбца C равен 3. Слон находится на клетке (2, 3). Количество клеток под атакой слона равно 5.Нажимая «Регистрация» или «Войти через Google», вы соглашаетесь с Публичной офертой, даете Согласие на обработку персональных данных, а также подтверждаете что вам есть 18 лет
Нажимая «Регистрация» или «Войти через Google», вы соглашаетесь с Публичной офертой, даете Согласие на обработку персональных данных, а также подтверждаете что вам есть 18 лет