B. Средний рост

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

Напишите программу, которая определяет, на сколько изменился средний рост учеников в классе.

Формат ввода

Вводится информация о детях в формате:
<Имя> <Рост месяц назад> <Рост сейчас>

Формат вывода

Одно число — ответ на вопрос задачи.
Ответ округлите до целых. Например, функцией round.

Пример

Ввод

Аня 160 162
Боря 165 172
Вова 165 165

Вывод

3

Ввод

Аня 161 165
Боря 167 172
Вова 165 166
Дима 173 178

Вывод

4

Решение

Эта задача не сильно сложнее предыдущей, но в ней есть свой нюанс, связанный с особенностями работы методов read() и readlines().

Дело в том, что stdin.read().split(‘\n’) в некоторых ситуациях (например если в конце последней строки нажать enter и только потом послать код окончания ввода) породит пустую строку, в то время как при использовании stdin.readlines() этого не произойдет.

В остальном, пока есть что читать, считываем строку, распаковываем ее в переменные, считаем разницу и накапливаем ее в сумму разниц роста.

По окончании цикла делим накопленную сумму на количество строк и округляем.

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

Посмотреть код

Решение

Python
# readlines()

from sys import stdin

delta = 0

strings = [line.rstrip('\n') for line in stdin.readlines()]

for string in strings:
    _, then, now = string.split()
    delta += int(now) - int(then)

print(round(delta / len(strings)))

Решение

Python
# read

from sys import stdin

strings = stdin.read().split('\n')
delta = 0
count = 0

for string in strings:
    if string:
        _, then, now = string.split()
        delta += int(now) - int(then)
        count += 1

print(round(delta / count))
Подписаться
Уведомить о
guest
0 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии