Весенние старты 2025 з2
В 2008 году в Иркутске по инициативе Городского методического совета учителей информатики первый раз состоялся Городской конкурс юных программистов "Весенние старты". С тех пор это соревнование проходит ежегодно и в нём принимает участие не меньше ста школьников. Первоначально было возрастное ограничение - допускались участники не старше 8 класса, однако затем стали допускать всех независимо от возраста.
До 2017 года в конкурсе была одна номинация "Решение задач" (фактически олимпиада) А в 2017 году появилась вторая номинация - "Смотр проектов" (конференция, на которой юные программисты защищают свои проекты, над которыми работали около года).
-----------------------------------
г. Иркутск
Конкурс юных программистов «Весенние старты» 2025
Номинация "Решение программистских задач"
Автор заданий Г.Б. Рейнгольд
Задача B. Хождение по квадрату (25 баллов)
Посмотрите внимательно на рисунок. На нём изображена доска, наподобие шахматной, но с произвольным размером. Каждое поле определяется двумя целыми числами (вертикаль и горизонталь), нумерация горизонталей сверху.
На поле (1, 1) находится фишка, которая должна сделать заданное количество шагов. Направление движения из каждого поля показано на рисунке стрелками. Сделать программу, определяющую поле, куда должна прийти фишка.
Размер таблицы задаётся.
Формат входных данных: два положительных целых числа через пробел в одной строке (размер доски >=1 и <100 и количество шагов >=1 и <=1000000).
Формат выходных данных: два целых числа в одной строке через пробел.
Пример 1: I Пример 2: I Пример 3:
Вход – 10 7 I Вход – 12 15 I Вход – 11 23
Выход – 8 1 I Выход – 12 5 I Выход – 8 11
-----------------------------------------------------
Пример 4: I Пример 5:
Вход – 10 30 I Вход – 10 43
Выход – 1 7 I Выход – 8 1
Авторское решение (Python):
# Рейнгольд Г.Б.
# Весенние старты 2025 Задача B Хождение по квадрату
# Для решения задачи достаточно уметь работать с переменными и ветвлениями
# И знать операцию нахождения остатка от деления одного числа на другое
n, d = map(int, input().split())
d = d % (4*n - 4) # После этого останется не больше одного круга
if d < n: # Если только вправо
x = d + 1
y = 1
else:
d = d - n + 1
if d < n: # Если только вправо и вниз
x = n
y = d + 1
else:
d = d - n + 1
if d < n: # Если только вправо, вниз и влево
x = n - d
y = n
else: # Вправо, вниз, влево и вверх
d = d - n + 1
x = 1
y = n - d
print(x, y)
Свидетельство о публикации №226041601306
Александр Михельман 16.04.2026 17:12 Заявить о нарушении
Если Вам надо будет, то поймёте. Программирование зиждется на математике, которая, в свою очередь, стоит на здравом смысле, умении отличить чёрное от белого.
Григорий Рейнгольд 18.04.2026 04:55 Заявить о нарушении