Статья Автор: Деникина Н.В., Деникин А.В.

Таблица по строкам — сортировка строки

Условие про наибольшие и наименьшие

Открой любой вариант — половина условий звучит так:

«сумма двух наибольших чисел строки не больше суммы трёх оставшихся» (открытый вариант 2025), «сумма наибольшего и наименьшего чисел больше суммы двух оставшихся» (ЕГЭ-2024), «максимальное число расположено в начале строки, а минимальное в конце».

Везде речь про места по величине. И везде помогает одно движение — отсортировать строку.

После сортировки места получают номера. В списке из шести чисел: s[0] — самое маленькое, s[5] — самое большое, s[4] — второе по величине.

▶ Запусти и посмотри на первые восемь строк: слева отсортированный вид, потом сумма двух наибольших, потом сумма четырёх оставшихся.



Что получилось

[7, 7, 7, 10, 33, 37] 70 31
[12, 14, 20, 25, 29, 30] 59 71
[17, 17, 32, 32, 35, 38] 73 98
[2, 2, 5, 11, 32, 32] 64 20
[25, 27, 27, 27, 34, 37] 71 106
[13, 15, 19, 23, 23, 29] 52 70
[16, 17, 17, 17, 19, 37] 56 67
[2, 12, 23, 26, 27, 33] 60 63

sorted даёт новый список и не портит исходную строку — это важно, если строка нужна дальше нетронутой.

Теперь условие пишется в одну строчку: s[4] + s[5] <= s[0] + s[1] + s[2] + s[3].

▶ Запусти и посчитай такие строки по всему файлу.



Что получилось

54

54 строк. Проверь себя на первой строке фрагмента: отсортированная [7, 7, 7, 10, 33, 37], два наибольших дают 70, остальные четыре — 31.


Тот же приём в таблице

Сортировки в редакторе нет, и она не нужна: есть НАИБОЛЬШИЙ, которая сразу выдаёт k-е по величине число строки.

H1=НАИБОЛЬШИЙ(A1:F1;1)+НАИБОЛЬШИЙ(A1:F1;2)ABCDEFGHIJKLM1107373377703121225292030145971338323217351773984225321132642052527372734277110662329152319135270в H — сумма двух наибольших, в I — сумма остальных: =СУММ(A1:F1)-H1

Дальше признак в следующем столбце:

=ЕСЛИ(H1<=I1;1;0)

И сумма признаков — ответ. Получится те же 54.

Полезная мелочь: =НАИМЕНЬШИЙ(A1:F1;1) — это самое маленькое число строки, ровно как s[0] в Питоне.


Строка отсортирована в список s из шести чисел. Что такое s[4]?


Чем в таблице заменяется sorted(row)[5] — самое большое число строки?


Зачем sorted(row), а не row.sort()?

Загрузка...
Чтобы оставить комментарий, необходимо авторизоваться
💬
Пока нет комментариев. Будьте первым!
Печать