Для решения этой задачи требуется рассмотреть как можно разместить максимальное количество королей на шахматной доске размером n × n таким образом, чтобы ни один король не мог угрожать другому. Короли могут угрожать не только по горизонтали и вертикали, но также и по диагонали, поэтому необходимо оставить между ними достаточное расстояние.
Наиболее эффективный способ разместить королей на доске — это использовать шахматный узор, в котором они помещаются в каждый второй ряд и каждый второй столбец. Таким образом, на доске размером n × n, максимальное количество королей, которое можно разместить, можно представить следующей формулой:
- Если n чётное, то максимальное количество королей: \( \frac{n \times n}{2} \).
- Если n нечётное, то максимальное количество королей: \( \frac{n \times n + 1}{2} \).
Это дает возможность разместить королей так, чтобы они не угрожали друг другу, даже если на краях доски остается пустое пространство.
Вот пример кода на Python для выполнения этой задачи:
def max_kings(n):
if n % 2 == 0:
return (n * n) // 2
else:
return (n * n + 1) // 2
# Ввод размера шахматной доски
n = int(input())
# Вывод максимального количества королей
print(max_kings(n))
Этот код принимает размер шахматной доски в качестве входного значения и выводит максимальное количество королей, которые можно разместить на доске, не угрожая друг другу. Важно помнить, что данный алгоритм работает эффективно даже для больших значений n, вплоть до 100000.
