Веду на сто
Конспект

Задание №17. Короткий конспект

Соседние группы, общий порог, точный перевод условий и проверка двух чисел ответа.

Последовательность сохраняет порядок чисел. Каждая соседняя пара или тройка проверяется отдельно. Ответ обычно содержит число подходящих групп и крайнее значение указанной величины среди них: минимум либо максимум.

Соседние группы

При длине списка N существуют N-1 пар и N-2 троек. Начало сдвигается на одну позицию. Элементы соседних групп перекрываются; сортировка меняет исходное соседство.

Группа в PythonНачала
a[i:i + 2]range(len(a) - 1)
a[i:i + 3]range(len(a) - 2)

Перевод условия

Если k — число элементов группы с нужным признаком, то «ровно один» означает k == 1, «не менее двух» — k >= 2, «не более двух» — k <= 2. Последняя проверка допускает и ноль. any проверяет только наличие хотя бы одного подходящего элемента.

Трёхзначность: 100 <= abs(x) <= 999. Окончание 15: abs(x) % 100 == 15. Модуль нужен для числа цифр и окончания; сравнение самих чисел и их сложение сохраняют знаки. Ноль не положительный и не отрицательный.

Порядок решения

  1. Из архива извлекается текстовый файл. Формат определяет, является ли первая строка числом данных или заголовком; автоматически удалять её нельзя.
  2. По всему списку находится общий порог: минимум, максимум или количество элементов с заданным признаком.
  3. Задаются длина группы и полное условие. Проверяются каждая соседняя группа и все ограничения вместе.
  4. Для принятой группы увеличивается счётчик и вычисляется величина для ответа. Первое принятое значение становится начальным минимумом или максимумом.
  5. После полного обхода выводятся количество и требуемое значение в указанном порядке. Отсутствие подходящих групп отмечается отдельно, например значением None.

Возможные ловушки

При финальной сверке сохраняются строгие и нестрогие сравнения, отрицательные значения и направление поиска: минимум не заменяется максимумом.