Вариант 1
сумма в последней строкеОткройте файл электронной таблицы, содержащей в каждой строке шесть натуральных чисел. Определите сумму чисел в строке с наибольшим номером, для которой выполнены оба условия:
– в строке есть одно число, которое повторяется трижды, остальные три числа различны;
– среднее арифметическое неповторяющихся чисел строки не больше повторяющегося числа.
В ответе запишите только число.
Файл к варианту: Ege9_v1.xlsx (2054 строк; Excel или LibreOffice Calc).
Разбор
Шаг 1. Разбираем условия на примере. Строка 6 — первая подходящая: 21, 119, 70, 78, 119, 119. Повторяется 119, неповторяющиеся — 21, 70, 78. Обе проверки выполняются.
Шаг 2. В электронной таблице. Справа от данных добавляем вспомогательные столбцы: для каждого числа СЧЁТЕСЛИ(строка; число) — сколько раз оно встречается в своей строке. По этим счётчикам проверяем первое условие, суммы и средние считаем через СУММЕСЛИ / СРЗНАЧЕСЛИ (по счётчику = 1 или > 1), затем общее условие через И(…) и фильтр.
Шаг 3. Итог. Подходящих строк 311; первая — 6, последняя — 2011 (сумма её чисел 533).
Ответ: 533
Решение на Python. Положите файл варианта рядом с программой (нужна библиотека openpyxl).
from collections import Counter
from openpyxl import load_workbook
ws = load_workbook('Ege9_v1.xlsx').active
ans = 0
for i, row in enumerate(ws.iter_rows(values_only=True), start=1):
row = list(row)
c = Counter(row) # число -> сколько раз встречается в строке
rep = [x for x in row if c[x] > 1] # повторяющиеся (с повторами)
uni = [x for x in row if c[x] == 1] # неповторяющиеся
if sorted(c.values()) == [1] * (len(row) - 3) + [3] and sum(uni) / len(uni) <= rep[0]:
ans = sum(row)
print(ans)