На бесконечном поле имеются 4 стены, расположенные в форме прямоугольника. Длины вертикальных и горизонтальных стен неизвестны. Робот находится в клетке, расположенной в левом верхнем углу прямоугольника. На рисунке указан один из возможных расположения стен и Робота (Робот обозначен буквой «Р»). Напишите для Робота алгоритм, закрашивающий все клетки, расположенные с внутренней стороны верхней и нижней стен. Робот должен закрасить только клетки, удовлетворяющие данному условию. Например, для приведённого выше рисунка Робот должен закрасить следующие клетки (см. рисунок). При исполнении алгоритма Робот не должен разрушиться, выполнение алгоритма должно завершиться. Конечное расположение Робота может быть произвольным. Алгоритм должен решать задачу для любого допустимого расположения стен и любого расположения и размера проходов внутри стен. Алгоритм может быть выполнен в среде формального исполнителя или записан в текстовом редакторе. Сохраните алгоритм в формате программы Кумир или в текстовом файле.
В таком турнире будет всего сыграно n (n - 1) / 2 партий: каждая из n команд сыграет по (n - 1) партии, и в каждой партии будет по две команды.
Если n - нечетное, то на первый взгляд ничего не мешает тому, что каждая команда выиграет по (n - 1)/2 встреч и будет победителем. Так действительно может быть: действительно, расставим все команды по кругу и скажем, что каждая команда выиграла у (n - 1)/2 команд, стоящих правее её, и проиграла (n - 1)/2 командам, стоящим левее.
Если n - четное, то все n победителями стать не могут, поскольку тогда у каждой было бы (n - 1)/2 побед - нецелое число. Зато могут быть (n - 1) победителей: выбираем одного неудачника, который проиграет всем, а остальные (n - 1) команды между собой сыграют так, как описано выше.
При переводе числа из десятичной системы счисления в другую нужно поделить число на основание системы счисления, в которую переводишь, и записать остаток. Результат деления снова поделить на основание системы счисления, в которую переводишь, и записать остаток. Продолжать до тех пор, пока результат не станет меньше основания с. сч., в которую переводишь. Тогда нужго записать последнее оставшееся число (то, которое меньше основания...) и все остатки в обратном порядке. Получившаяся последовательность чисел — ответ.
Решение примеров из вопроса см. в приложенном фото.
В таком турнире будет всего сыграно n (n - 1) / 2 партий: каждая из n команд сыграет по (n - 1) партии, и в каждой партии будет по две команды.
Если n - нечетное, то на первый взгляд ничего не мешает тому, что каждая команда выиграет по (n - 1)/2 встреч и будет победителем. Так действительно может быть: действительно, расставим все команды по кругу и скажем, что каждая команда выиграла у (n - 1)/2 команд, стоящих правее её, и проиграла (n - 1)/2 командам, стоящим левее.
Если n - четное, то все n победителями стать не могут, поскольку тогда у каждой было бы (n - 1)/2 побед - нецелое число. Зато могут быть (n - 1) победителей: выбираем одного неудачника, который проиграет всем, а остальные (n - 1) команды между собой сыграют так, как описано выше.
Программа (Python 3):
n = int(input())
print(n - (n + 1) % 2)
Объяснение:
При переводе числа из десятичной системы счисления в другую нужно поделить число на основание системы счисления, в которую переводишь, и записать остаток. Результат деления снова поделить на основание системы счисления, в которую переводишь, и записать остаток. Продолжать до тех пор, пока результат не станет меньше основания с. сч., в которую переводишь. Тогда нужго записать последнее оставшееся число (то, которое меньше основания...) и все остатки в обратном порядке. Получившаяся последовательность чисел — ответ.
Решение примеров из вопроса см. в приложенном фото.