Соревнования (Python). №16 ОГЭ

Подборка заданий, в которых формулировка отличается от ввода последовательности чисел.

Имена переменных могут быть другими.

№DB34E2

  • условие
  • решение

На соревнованиях по бегу на 5000 метров для выхода в финал необходимо показать время не более 18 минут 30 секунд.

Сколько спортсменов по результатам соревнований вышли в финал?

Программа получает на вход количество спортсменов, принимавших участие в соревнованиях (1 ≤ N ≤ 100), затем для каждого спортсмена вводится два числа: минуты и секунды – время, показанное на дистанции.

Пример работы программы:

Входные данныеВыходные данные
2
17  15
19  20
1

Корректность введённых данных не проверяем.

Пусть sportsmen – общее количество спортсменов, finalists – количество финалистов, minutes, seconds – время в минутах и секундах соответственно.

Вводим количество спортсменов, используя input(), преобразуем в целое число при помощи int(). Переменная finalists – это по сути переменная-счётчик вышедших в финал спортсменов, присваиваем ей начальное значение 0.

Организуем цикл с количеством повторений по количеству спортсменов. Судя по входным данным, время в минутах и секундах по каждому спортсмену вводится через пробел. При помощи метода split() делим введённые данные по пробелу. Используем функцию map, чтобы преобразовать их в целые числа.

Если количество минут – 18 и при этом секунд не больше 30 или же если минут меньше 18, спортсмен должен попасть в список финалистов. То есть, в этом случае переменная finalists увеличится на 1.

После завершения цикла, когда введены данные по всем спортсменам, выводим количество финалистов – значение переменной finalists.

Вариант решения

sportsmen = int(input())
finalists = 0

for sportsman in range(sportsmen):
    minutes, seconds = map(int, input().split())
    if (minutes == 18 and seconds <= 30) or minutes < 18:
        finalists += 1

print(finalists)

Похожая задача про парусную регату.

№59429F

  • условие
  • решение

Участники парусной регаты стартовали одновременно. На финише фиксировалось время прохождения маршрута каждой яхтой (в часах и минутах). Определите время победителя регаты (в часах и минутах). Известно, что соревнования проходили в течение 12 часов.

Программа получает на вход количество яхт, принимавших участие в регате
N (1 ≤ N ≤ 100), затем для каждой яхты вводится два числа: часы и минуты, затраченные на прохождение маршрута.

Пример работы программы:

Входные данныеВыходные данные
2
3  25
2  50
2  50

yachts – количество яхт, принимавших участие в регате. Лучшее время (best_hour, best_minutes) изначально будет максимально возможным, по условию это 12 часов 00 минут. Уменьшая лучшее время при сравнении с временем каждой яхты (hour, minutes), найдём наименьшее. То есть, определим время победителя.

№15.2 ОГЭ, соревнования

Примеры из Банка заданий ОГЭ.