Весенние старты 2025 з3
В 2008 году в Иркутске по инициативе Городского методического совета учителей информатики первый раз состоялся Городской конкурс юных программистов "Весенние старты". С тех пор это соревнование проходит ежегодно и в нём принимает участие не меньше ста школьников. Первоначально было возрастное ограничение - допускались участники не старше 8 класса, однако затем стали допускать всех независимо от возраста.
До 2017 года в конкурсе была одна номинация "Решение задач" (фактически олимпиада) А в 2017 году появилась вторая номинация - "Смотр проектов" (конференция, на которой юные программисты защищают свои проекты, над которыми работали около года).
-----------------------------------
г. Иркутск
Конкурс юных программистов «Весенние старты» 2025
Номинация "Решение программистских задач"
Автор заданий Г.Б. Рейнгольд
Задача C. Соревнования по бегу (25 баллов)
Беговая дорожка стадиона имеет форму окружности. Сперва спортсмены расположены таким образом, что между всеми соседями одинаковое расстояния.
Посмотрите рисунок, на нём начальное положение с шестью спортсменами.
По команде судьи они одновременно начинают бежать все в одну сторону. Первый пытается догнать второго, второй – третьего и так далее… Последний спортсмен догоняет первого.
Как только кто-то догонит соседа, все моментально останавливаются. Победителями признаются те, кто догнал и бежал с наибольшей скоростью среди догнавших.
Задаются скорости всех спортсменов. Сделать программу, которая определит количество и номера победителей. В случае, если никто никого не догонит, вывести 0.
Формат входных данных: две строки: в первой одно целое число (>1 и <=10), количество спортсменов; во второй через пробел столько натуральных чисел, каково числе в первой строке (скорости всех спортсменов (>=1 и <=100).
Формат выходных данных: две строки: в первой одно целое число, во второй – столько целых чисел через пробел, каково число в первой строке (если в первой строке 0, то второй строки нет.
Пример 1:
Вход – 5
7 7 7 7 7
Выход –
0
Пример 2:
Вход – 4
10 30 20 40
Выход –
1
4
Пример 3:
Вход – 8
36 39 36 39 36 41 40 39
Выход –
3
2 4 8
Авторское решение (Python)
# ВС-2025 задача C Соревнования по бегу
def maxel(n, a): # Значение наибольшего элемента списка, можно воспользоваться и встроенной функцией
m = a[0]
for i in range(n):
if a[i] > m:
m = a[i]
return m
n = int(input())
a = list(map(int, input().split()))
#print(a)
b = [] # Список скоростей относительно ближайшего соседа.
k0 = 0 # Счётчик нулевых относительных скоростей
for i in range(n - 1):
b.append(a[i] - a[i + 1])
if b[i] == 0:
k0 += 1
b.append(a[n - 1] - a[0])
if b[n - 1] == 0:
k0 += 1
#print(b)
if k0 == n: # У всех одна скорость и никто никого не догонит
print(0)
else:
m1 = maxel(n, b) # Наибольшая относительная скорость
m2 = 0 # Наибольшая абсолютная скорость для тех, у кого наибольшая относительная
for i in range(n):
if a[i] > m2 and b[i] == m1:
m2 = a[i]
#print(m1, m2)
kp = 0 # Количество победителей
for i in range(n):
if b[i] == m1 and a[i] == m2:
kp += 1
print(kp)
for i in range(n): # Вывод индексов победителей
if b[i] == m1 and a[i] == m2:
print(i + 1, end = ' ')
Свидетельство о публикации №226041901520
Я специалист старой закваски, поэтому такие задачи в лоб не могу решать. Вначале надо алгоритм нарисовать, а уже по алгоритму текст программы.
С искренним уважением, Алексей.
Алексей Кимяев 20.04.2026 13:57 Заявить о нарушении
Перед тем, как начать составлять алгоритм, надо разобраться с авторскими тестами, понять какие в задаче могут быть частные случаи, составить свою тестовую полную минимальную систему, а уже потом браться за алгоритм. бывает, что алгоритм рождается благодаря тому, что при составлении тестов увиделась красивая формула.
Последние лет сорок, благодаря существованию хороших структурных языков, процесс алгоритмизации совмещён с процессом программирования.
Если вперёд не заняться составлением тестов, то можно попасться в ловушку и пойти по неверному пути.
Григорий Рейнгольд 20.04.2026 15:50 Заявить о нарушении
С искренним уважением, Алексей.
Алексей Кимяев 20.04.2026 19:25 Заявить о нарушении