Весенние старты 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 = ' ')


Рецензии
ничего себе и такое бывает? с уважением:—)))удачи в творчестве.

Александр Михельман   20.04.2026 17:50     Заявить о нарушении