Весенние старты 2025 з4
В 2008 году в Иркутске по инициативе Городского методического совета учителей информатики первый раз состоялся Городской конкурс юных программистов "Весенние старты". С тех пор это соревнование проходит ежегодно и в нём принимает участие не меньше ста школьников. Первоначально было возрастное ограничение - допускались участники не старше 8 класса, однако затем стали допускать всех независимо от возраста.
До 2017 года в конкурсе была одна номинация "Решение задач" (фактически олимпиада) А в 2017 году появилась вторая номинация - "Смотр проектов" (конференция, на которой юные программисты защищают свои проекты, над которыми работали около года).
-----------------------------------
г. Иркутск
Конкурс юных программистов «Весенние старты» 2025
Номинация "Решение программистских задач"
Автор заданий Г.Б. Рейнгольд
Задача D. Камень, ножницы, бумага 2. (25 баллов)
Петя и Вася несколько раз сыграли в игру «Камень – Ножницы - Бумага».
Задаётся общее количество игр и их ходы в каждой игре. Сделать программу, которая определит количество побед каждого игрока и количество ничьих и результат каждой игры.
Ход игрока обозначается следующим образом:
1 – Камень;
2 – Ножницы;
3 – Бумага.
Результат игры обозначается следующим образом:
1 - победил первый игрок;
2 - победил второй игрок;
0 – ничья.
Формат входных данных: в первой строке – одно целое число (>= 1 и <=100) общее количество игр. Далее следует столько строк, каково первое число. В каждой строке два целых числа через пробел.
Формат выходных данных: в первой строке 3 числа через пробел в одной строке (количество побед первого игрока, количество побед второго игрока и количество ничьих). Во второй строке столько целых чисел, сколько игр, каждое число – результат очередной игры.
Пример 1:
Вход:
6
1 2
3 1
2 2
1 3
3 3
2 3
Выход:
3 1 2
1 1 0 2 0 1
Авторское решение (Python)
# Рейнгольд Г.Б.
# Весенние старты 2025 Задача D Кмень-Ножницы-Бумага
# Для решения достаточно уметь работать с переменными, ветвлениями, циклами
# и массивами
# Обозначения:
#
# Ходы
#
# Камень 1
# Ножницы 2
# Бумага 3
# ------------
# Результаты игры:
#
# 1 победил 1 игрок
# 2 победил 2 игрок
# 0 Ничья
# ----------------------
# Варианты игры
#
# Номера игроков
# 1 | 2 Результат игры
# ------------------
# 1 | 1 | 0 Камень - Камень Ничья
# 1 | 2 | 1 Камень - Ножницы Победил 1 игрок
# 1 | 3 | 2 Камень - Бумага Победил 2 игрок
# 2 | 1 | 2 Ножницы - Камень Победил 2 игрок
# 2 | 2 | 0 Ножницы - Ножницы Ничья
# 2 | 3 | 1 Ножницы - Бумага Победил 1 игрок
# 3 | 1 | 1 Бумага - Камень Победил 1 игрок
# 3 | 2 | 2 Бумага - Ножницы Победил 2 игрок
# 3 | 3 | 0 Бумага - Бумага Ничья
def knb (v1, v2): # Определение результата игры
if v1 == v2: # Ничья
o = 0
elif (v1 ==1 and v2 ==2) or (v1 == 2 and v2 == 3) or (v1 ==3 and v2 ==1):
o = 1 # Победа первого
else:
o = 2 # Победа второго
return o
n = int(input())
k = [0]*3 # Список, в котором на 0-м месте количество ничьих,
# на 1-м количество побед 1-го
# на 2-м количество побед 2-го
r = [] # список результатов каждого тура
for i in range(n):
v1, v2 = map(int, input().split())
k[knb(v1, v2)] += 1
r.append(knb(v1, v2))
print(k[1], k[2], k[0])
for i in range(n):
print(r[i], end = ' ')
Свидетельство о публикации №226042001430
Александр Михельман 20.04.2026 17:50 Заявить о нарушении