Задача к ЕГЭ по информатике на тему «Количество строк, удовлетворяющих условию» №2

Задание выполняется с использованием прилагаемых файлов

Откройте файл электронной таблицы, содержащей в каждой строке пять натуральных чисел. Определите количество строк таблицы, содержащих числа, для которых выполнены оба условия:

— в строке все числа различны;

— удвоенная сумма максимального и минимального чисел строки не больше суммы оставшихся трёх её чисел.

В ответе запишите только число.

Решение Excel:

Сначала проверим 1 условие. Запишем в ячейку F1  следующую формулу — =ЕСЛИ(ИЛИ(A1=B1,A1=C1,A1=D1,A1=E1,B1=C1,B1=D1,B1=E1,C1=D1,C1=E1,D1=E1),0,1).

Затем проверим 2 условие. Воспользуемся функциями =НАИБОЛЬШИЙ() и =НАИМЕНЬШИЙ(). Как они работает: подается массив и номер числа по убыванию. Так, в строке 91 88 10 34 46  функция =НАИБОЛЬШИЙ(x:y; 1) выведет 91  , а функция =НАИМЕНЬШИЙ(x:y; 1) выведет 10  . Запишем в ячейку формулу — =СУММ(A1:E1)-НАИБОЛЬШИЙ(A1:E1,1)-НАИМЕНЬШИЙ(A1:E1,1) и скопируем ее на диапазон G1 : G16000  . Получим сумму за вычетом наибольшего и наименьшего значений. Запишем в ячейку формулу — ЕСЛИ(И(2*(НАИБОЛЬШИЙ(A1:E1,1)+НАИМЕНЬШИЙ(A1:E1,1))<=G1,F1=1),1,0) и скопируем ее на диапазон H1 : H16000  . Считаем количество строк удовлетворяющих 1 и 2 условию — =СУММ(H:H)

Решение программой:

f = open(’9.txt’, ’r’)
count = 0
for line in f:
    a = [int(x) for x in line.split()]
    if len(set(a)) == 5 and 2 * (max(a) + min(a)) <= sum(a) - max(a) - min(a):
        count += 1
print(count)

Ответ: 607
Оцените статью
Я решу все!