πЕГЭ · ИИ-репетитор12 предметов · задания ФИПИ
Главная → Информатика → Задания №9 → Задание i09-12

Задание №9 ЕГЭ Информатика с ответом и решением

Ответ: 607

Условие

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

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

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

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

Подсказки — как подойти к решению

  1. Упорядочи строку и работай с крайними значениями: после сортировки максимум и минимум видны сразу, а уникальность проверяется сравнением соседних чисел — повторов в строке быть не должно вовсе.
  2. Сравнивай удвоенную сумму крайних с суммой трёх средних, а не с суммой всех чисел строки: если взять общую сумму, крайние значения посчитаются дважды и результат исказится.

Решение

Сначала будем проверять, сколько раз в строке встречается число. Для этого в ячейку F1 запишем формулу:

=СЧЁТЕСЛИ($A1:$E1;A1)

и скопируем её во все ячейки диапазона F1:J16000. В ячейке К1 запишем формулу =СУММ(F1:J1). Если число в ячейке равно 5, то в ряду все числа встречаются один раз. Скопируем формулу во все ячейки диапазона К1:К16000. В ячейке L1 посчитаем удвоенную сумму максимального и минимального значений. Для этого в ячейку L1 запишем формулу:

=ЕСЛИ(K1=5;2*(МАКС(A1:E1)+МИН(A1:E1));0)

и скопируем её во все ячейки диапазона L1:L16000. В ячейке M1 посчитаем сумму оставшихся чисел. Для этого в ячейку M1 запишем формулу:

=ЕСЛИ(K1=5;(СУММ(A1:E1)-МАКС(A1:E1)-МИН(A1:E1));0)

и скопируем её во все ячейки диапазона M1:M16000. В ячейке N1 будем выписывать 1, если ряд подходит под условие задачи, и 0, если не подходит. Для этого в ячейку N1 запишем формулу:

=ЕСЛИ(K1=5;ЕСЛИ(L1<=M1;1;0);0)

и скопируем её во все ячейки диапазона N1:N16000. Окончательно с помощью формулы =СУММ(N1:N16000) получим ответ — 607.

Ответ: 607.

Приведём решение Михаила Глинского на языке Python.

f = open('1_9.txt')

count = 0

for s in f:

m=[int (x) for x in s.split()]

m.sort()

if len(set(m))==5 and 2*(m[0]+m[-1]) <= sum(m) - (m[0]+m[-1]):

count += 1

print(count)

Примечание. Файл следует сохранить в формате txt.

Ответ: 607

Типичные ошибки

Решить это задание в тренажёре

В тренажёре: подсказки по шагам, разбор твоей ошибки ИИ-репетитором (он не даёт готовый ответ), повторение ошибок по интервалам и общий прогресс. Все задания №9 по информатике