Упражнения

A: Четвертная оценка

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

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

Вводится десять натуральных чисел от 2 до 5 через пробел – оценки Васи.

Выведите натуральное число (от 2 до 5) – его четвертную оценку.

Ввод Вывод
2 5 2 5 2 5 2 5 2 5
5
2 2 2 2 2 2 2 2 2 5
2
5 5 5 5 5 5 5 5 5 2
4

B: Пассажиры метро

Для изучения пассажиропотока в метро было записано время входа и время выхода в метро каждого пассажира. На основании этих данных определите, сколько пассажиров было в метро в некоторый заданный момент времени \(T\).

Программа получает на вход число пассажиров \(N\). Далее в \(N\) строчках записано время входа \(A_i\) и время выхода \(B_i\) каждого пассажира (\(A_i\le B_i\)). Время задается в минутах от начала работы метрополитена.

В следующей строке дано время \(T\). Выведите одно число: количество пассажиров в момент времени \(T\). Если какой-то пассажир в момент \(T\) входит или выходит, то его тоже необходимо посчитать.

Ввод Вывод
4
3 12
8 9
5 10
10 12
10
3

C: Час пик

Не без вашей помощи в метро посчитали количество пассажиров в каждый час работы метро. Теперь вас просят по этим данным найти “час пик” такие \(k\) подряд идущих часов, что суммарное число пассажиров в эти часы максимальное.

Первая строка входных данных содержит количество часов в сутках, в течение которых работает метрополитен \(N\) (\(1\le N\le 1000\)). Вторая строка содержит \(N\) неотрицательных чисел, записанных через пробел  количество пассажиров в каждый из часов. В третьей строке записана продолжительность часа пик \(K\) (\(1\le k \le N\)).

Найдите \(K\) подряд идущих часов работы метрополитена с максимальным суммарным числом пассажиров и выведите суммарное число пассажиров за эти часы.

Ввод Вывод
7
3 2 5 4 3 2 4
3
12

D: Два совпадающих элемента

В массиве ровно два элемента равны. Найдите эти элементы.

Программа получает на вход число \(N\), в следующей строке заданы \(N\) элементов списка через пробел.

Выведите значение совпадающих элементов.

Ввод Вывод
6
8 3 5 4 5 1
5

E: Диаметр множества

На плоскости даны \(N\) точек, заданных своими координатами. Найдите две наиболее удаленные точки и выведите расстояние между ними.

Первая строка входных данных содержит число точек \(N\). Далее в \(N\) строках записано по два целых числа \(x_i\) и \(y_i\) — координаты точек.

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

Ввод Вывод
3
1 1
1 0
0 0
1.4142135623731

F: Долговые расписки

В одном карточном клубе состоит \(N\) джентльменов. Иногда азарт некоторых из них берет верх над благоразумием, и кто-то проигрывает больше денег, чем у него есть с собой. В этом случае проигравший обычно берет в долг у кого-то из посетителей клуба, чтобы расплатиться с партнерами по игре. Чтобы начать новый год “с чистого листа”, джентльмены решили собраться в клубе и оплатить все долговые расписки, которые накопились у них друг к другу. Однако выяснилось, что иногда одни и те же джентльмены в разные дни выступали как в роли должников, так и в роли кредиторов. Поскольку истинные джентльмены считают мелочный подсчет денег ниже своего достоинства, то расчетами придется заняться вам.

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

Первая строка входных данных содержит сначала число \(N\) — количество джентльменов (натуральное, не превышает 100, не менее 2), и число \(K\) — количество долговых расписок (натуральное, не превышает 10000), после этого следует \(K\) троек чисел: номер джентльмена взявшего в долг, номер джентльмена давшего деньги и сумма. Номера джентльменов в расписках — натуральные числа, не превышающие \(N\). Сумма — натуральное число, не превышает 100. Гарантируется, что ни один джентльмен не брал в долг сам у себя.

Выведите N чисел — суммы, которые должны получить соответствующие джентльмены. Выведите положительное число, если этот джентльмен должен получить деньги от других, отрицательное — если он должен отдать деньги другим.

Требования к решению: используется только один массив, все входные данные не сохраняются в массиве, а обрабатыаются сразу же после считывания, нет вложенных циклов.

Ввод Вывод
2 3
1 2 10
1 2 20
1 2 20
-50 50
3 1
3 1 100
100 0 -100