В файле — длинная последовательность целых чисел; программа перебирает пары соседних чисел, отбирает подходящие по условию и находит их количество и, например, наибольшую сумму пары. Повышенный уровень, решается программой; ответ — два числа, за оба верных 1 балл.
Ответ
два числа в таблице ответа
Баллы
1 балл
Проверяет
умение составить алгоритм обработки числовой последовательности и записать его программой из 10–15 строк
Сколько времени закладывать
около 13 минут по спецификации ФИПИ
Какие бывают подтипы
Условие на саму пару — Пару проверяют по её числам: делимость, последняя цифра, чётность. В ответ — количество пар и наибольшая или наименьшая сумма.
Условие про весь файл — Как в демоверсии: условие ссылается на всю последовательность — её наименьший или наибольший элемент, среднее. Эту величину находят отдельным проходом до перебора пар.
Пример с полным разбором
Условие. В файле записана последовательность натуральных чисел. Рассматриваются пары соседних элементов. Найдите количество пар, в которых ровно одно из двух чисел чётное, а сумма чисел пары меньше наибольшего элемента всей последовательности; затем — наибольшую из сумм таких пар. Для примера возьмём короткую последовательность: 14, 25, 30, 8, 42, 18, 5, 12.
Условие ссылается на всю последовательность, поэтому сначала отдельным проходом находим её наибольший элемент — 42.
Пары соседних чисел: (14, 25), (25, 30), (30, 8), (8, 42), (42, 18), (18, 5), (5, 12) — их на одну меньше, чем чисел.
Ровно одно чётное число в парах (14, 25), (25, 30), (18, 5) и (5, 12). Сумма меньше 42 у трёх из них: 39, 23 и 17; у пары (25, 30) сумма 55.
Подходящих пар 3, наибольшая сумма среди них — 39.
Программа на Python делает то же на файле, где чисел намного больше: a = [int(s) for s in open("17.txt")]m = max(a)k = 0best = 0for i in range(len(a) - 1):x, y = a[i], a[i + 1]if x % 2 + y % 2 == 1 and x + y < m:k += 1best = max(best, x + y)print(k, best)
Ответ: 3 и 39: сначала количество пар, затем сумма
Частые ошибки
Перебирают пары до последнего числа включительно и выходят за край списка: пар на одну меньше, чем чисел.
Ищут наибольший элемент внутри того же цикла по парам, хотя он нужен до начала перебора.
Начинают поиск максимума с нуля на файле, где бывают отрицательные числа.
Меняют местами два числа ответа: порядок задан условием.
Берут последнюю цифру отрицательного числа как остаток от деления на 10, не взяв модуль.
Что нужно знать для задания 17
Оглавление курса «ЕГЭ по информатике» под это задание. Содержание открывается после оплаты.
Один, хотя в ответе два числа: балл ставят, только если оба совпали с верными и стоят на своих местах.
Обязательно ли писать программу?
Практически да: чисел в файле много, и спецификация относит задание к тем, где нужны программы на компьютере. Писать можно на любом языке из доступных на экзамене: C#, C++, Pascal, Java, Python.
Что считается парой?
Два идущих подряд элемента последовательности. Каждое число, кроме первого и последнего, входит в две пары.