В файле — последовательность чисел. Нужно найти пары или тройки соседних элементов, удовлетворяющие условиям, и вывести их количество и максимальную или минимальную сумму. К каждому варианту — файл.
Шаблон решения
Прочитать числа в список: a = [int(x) for x in open('file.txt')].
Сначала посчитать «глобальное» значение (минимум, максимум) по всему списку.
Перебрать i от 0 до len(a) − 2 (для троек — до len(a) − 3).
Проверки
Двузначное: 10 <= abs(x) <= 99.
Оканчивается на 7: abs(x) % 10 == 7 (для отрицательных — только через abs).
«Только один» — счётчик подходящих элементов равен 1.
Типичные ошибки
x % 10 для отрицательного x в Python даёт не последнюю цифру.
Выйти за конец списка при переборе троек.
Перепутать «только один» и «хотя бы один».
Разобранные варианты
Сначала напиши программу сам, потом открой разбор.
Вариант 1
пары · двузначные
В файле содержится последовательность целых чисел. Её элементы могут принимать целые значения от 1 до 100 000 включительно. Определите количество пар последовательности, в которых только один из элементов является двузначным числом, а сумма элементов пары кратна минимальному двузначному элементу последовательности. В ответе запишите количество найденных пар, затем максимальную из сумм элементов таких пар. В данной задаче под парой подразумевается два идущих подряд элемента последовательности.
Файл к варианту: Ege17_v1.txt (5000 чисел, по одному в строке).
Разбор
Шаг 1. Значение для сравнения. Сначала один раз проходим по всей последовательности: минимальный двузначный элемент — 10.
Шаг 2. Перебор пар. Для каждого i берём элементы a[i]…a[i + 1], считаем, сколько из них двузначные, и проверяем сумму.
Итог: 177 пар, наибольшая сумма 99570.
Ответ: 177 99570
Решение на Python. Положите файл варианта рядом с программой.
a = [int(x) for x in open('Ege17_v1.txt')]
R = min(x for x in a if 10 <= abs(x) <= 99)
count = 0
best = -10 ** 9
for i in range(len(a) - 1):
g = a[i:i + 2]
c = sum(1 for x in g if 10 <= abs(x) <= 99)
s = sum(g)
if c == 1 and s % R == 0:
count += 1
best = max(best, s)
print(count, best)
Вариант 2
пары · трёхзначные
В файле содержится последовательность целых чисел. Её элементы могут принимать целые значения от 1 до 100 000 включительно. Определите количество пар последовательности, в которых хотя бы один из элементов является трёхзначным числом, а сумма элементов пары больше максимального элемента последовательности, оканчивающегося на 3. В ответе запишите количество найденных пар, затем минимальную из сумм элементов таких пар. В данной задаче под парой подразумевается два идущих подряд элемента последовательности.
Файл к варианту: Ege17_v2.txt (5000 чисел, по одному в строке).
Разбор
Шаг 1. Значение для сравнения. Сначала один раз проходим по всей последовательности: максимальный элемент, оканчивающийся на 3 — 99983.
Шаг 2. Перебор пар. Для каждого i берём элементы a[i]…a[i + 1], считаем, сколько из них трёхзначные, и проверяем сумму.
Итог: 5 пар, наименьшая сумма 100016.
Ответ: 5 100016
Решение на Python. Положите файл варианта рядом с программой.
a = [int(x) for x in open('Ege17_v2.txt')]
R = max(x for x in a if abs(x) % 10 == 3)
count = 0
best = 10 ** 9
for i in range(len(a) - 1):
g = a[i:i + 2]
c = sum(1 for x in g if 100 <= abs(x) <= 999)
s = sum(g)
if c >= 1 and s > R:
count += 1
best = min(best, s)
print(count, best)
Вариант 3
тройки · двузначные
В файле содержится последовательность целых чисел. Её элементы могут принимать целые значения от 1 до 100 000 включительно. Определите количество троек последовательности, в которых только один из элементов является двузначным числом, а сумма элементов тройки кратна минимальному трёхзначному элементу последовательности. В ответе запишите количество найденных троек, затем максимальную из сумм элементов таких троек. В данной задаче под тройкой подразумевается три идущих подряд элемента последовательности.
Файл к варианту: Ege17_v3.txt (10000 чисел, по одному в строке).
Разбор
Шаг 1. Значение для сравнения. Сначала один раз проходим по всей последовательности: минимальный трёхзначный элемент — 100.
Шаг 2. Перебор троек. Для каждого i берём элементы a[i]…a[i + 2], считаем, сколько из них двузначные, и проверяем сумму.
Итог: 25 троек, наибольшая сумма 148300.
Ответ: 25 148300
Решение на Python. Положите файл варианта рядом с программой.
a = [int(x) for x in open('Ege17_v3.txt')]
R = min(x for x in a if 100 <= abs(x) <= 999)
count = 0
best = -10 ** 9
for i in range(len(a) - 2):
g = a[i:i + 3]
c = sum(1 for x in g if 10 <= abs(x) <= 99)
s = sum(g)
if c == 1 and s % R == 0:
count += 1
best = max(best, s)
print(count, best)
Вариант 4
пары · оканчиваются на 7
В файле содержится последовательность целых чисел. Её элементы могут принимать целые значения от −100 000 до 100 000 включительно. Определите количество пар последовательности, в которых только один из элементов оканчивается на 7, а сумма элементов пары кратна минимальному двузначному элементу последовательности. В ответе запишите количество найденных пар, затем максимальную из сумм элементов таких пар. В данной задаче под парой подразумевается два идущих подряд элемента последовательности. Число считается двузначным (трёхзначным, …) по записи модуля: −45 — двузначное число.
Файл к варианту: Ege17_v4.txt (10000 чисел, по одному в строке).
Разбор
Шаг 1. Значение для сравнения. Сначала один раз проходим по всей последовательности: минимальный двузначный элемент — -99.
Шаг 2. Перебор пар. Для каждого i берём элементы a[i]…a[i + 1], считаем, сколько из них оканчиваются на 7, и проверяем сумму.
Отрицательные числа. В Python −17 % 10 = 3, поэтому последнюю цифру и количество цифр берём у модуля: abs(x).
Итог: 27 пар, наибольшая сумма 129195.
Ответ: 27 129195
Решение на Python. Положите файл варианта рядом с программой.
a = [int(x) for x in open('Ege17_v4.txt')]
R = min(x for x in a if 10 <= abs(x) <= 99)
count = 0
best = -10 ** 9
for i in range(len(a) - 1):
g = a[i:i + 2]
c = sum(1 for x in g if abs(x) % 10 == 7)
s = sum(g)
if c == 1 and s % R == 0:
count += 1
best = max(best, s)
print(count, best)
Вариант 5
пары · четырёхзначные
В файле содержится последовательность целых чисел. Её элементы могут принимать целые значения от 1 до 100 000 включительно. Определите количество пар последовательности, в которых оба элемента являются четырёхзначными числами, а сумма элементов пары кратна минимальному трёхзначному элементу последовательности. В ответе запишите количество найденных пар, затем максимальную из сумм элементов таких пар. В данной задаче под парой подразумевается два идущих подряд элемента последовательности.
Файл к варианту: Ege17_v5.txt (10000 чисел, по одному в строке).
Разбор
Шаг 1. Значение для сравнения. Сначала один раз проходим по всей последовательности: минимальный трёхзначный элемент — 101.
Шаг 2. Перебор пар. Для каждого i берём элементы a[i]…a[i + 1], считаем, сколько из них четырёхзначные, и проверяем сумму.
Итог: 5 пар, наибольшая сумма 14342.
Ответ: 5 14342
Решение на Python. Положите файл варианта рядом с программой.
a = [int(x) for x in open('Ege17_v5.txt')]
R = min(x for x in a if 100 <= abs(x) <= 999)
count = 0
best = -10 ** 9
for i in range(len(a) - 1):
g = a[i:i + 2]
c = sum(1 for x in g if 1000 <= abs(x) <= 9999)
s = sum(g)
if c == 2 and s % R == 0:
count += 1
best = max(best, s)
print(count, best)
Вариант 6
тройки · трёхзначные
В файле содержится последовательность целых чисел. Её элементы могут принимать целые значения от −100 000 до 100 000 включительно. Определите количество троек последовательности, в которых хотя бы один из элементов является трёхзначным числом, а сумма элементов тройки кратна минимальному двузначному элементу последовательности. В ответе запишите количество найденных троек, затем минимальную из сумм элементов таких троек. В данной задаче под тройкой подразумевается три идущих подряд элемента последовательности. Число считается двузначным (трёхзначным, …) по записи модуля: −45 — двузначное число.
Файл к варианту: Ege17_v6.txt (8000 чисел, по одному в строке).
Разбор
Шаг 1. Значение для сравнения. Сначала один раз проходим по всей последовательности: минимальный двузначный элемент — -99.
Шаг 2. Перебор троек. Для каждого i берём элементы a[i]…a[i + 2], считаем, сколько из них трёхзначные, и проверяем сумму.
Отрицательные числа. В Python −17 % 10 = 3, поэтому последнюю цифру и количество цифр берём у модуля: abs(x).
Итог: 22 троек, наименьшая сумма -85140.
Ответ: 22 -85140
Решение на Python. Положите файл варианта рядом с программой.
a = [int(x) for x in open('Ege17_v6.txt')]
R = min(x for x in a if 10 <= abs(x) <= 99)
count = 0
best = 10 ** 9
for i in range(len(a) - 2):
g = a[i:i + 3]
c = sum(1 for x in g if 100 <= abs(x) <= 999)
s = sum(g)
if c >= 1 and s % R == 0:
count += 1
best = min(best, s)
print(count, best)
Вариант 7
пары · двузначные
В файле содержится последовательность целых чисел. Её элементы могут принимать целые значения от −100 000 до 100 000 включительно. Определите количество пар последовательности, в которых хотя бы один из элементов является двузначным числом, а сумма элементов пары кратна минимальному трёхзначному элементу последовательности. В ответе запишите количество найденных пар, затем максимальную из сумм элементов таких пар. В данной задаче под парой подразумевается два идущих подряд элемента последовательности. Число считается двузначным (трёхзначным, …) по записи модуля: −45 — двузначное число.
Файл к варианту: Ege17_v7.txt (10000 чисел, по одному в строке).
Разбор
Шаг 1. Значение для сравнения. Сначала один раз проходим по всей последовательности: минимальный трёхзначный элемент — -998.
Шаг 2. Перебор пар. Для каждого i берём элементы a[i]…a[i + 1], считаем, сколько из них двузначные, и проверяем сумму.
Отрицательные числа. В Python −17 % 10 = 3, поэтому последнюю цифру и количество цифр берём у модуля: abs(x).
Итог: 6 пар, наибольшая сумма 96806.
Ответ: 6 96806
Решение на Python. Положите файл варианта рядом с программой.
a = [int(x) for x in open('Ege17_v7.txt')]
R = min(x for x in a if 100 <= abs(x) <= 999)
count = 0
best = -10 ** 9
for i in range(len(a) - 1):
g = a[i:i + 2]
c = sum(1 for x in g if 10 <= abs(x) <= 99)
s = sum(g)
if c >= 1 and s % R == 0:
count += 1
best = max(best, s)
print(count, best)
Вариант 8
тройки · оканчиваются на 7
В файле содержится последовательность целых чисел. Её элементы могут принимать целые значения от 1 до 100 000 включительно. Определите количество троек последовательности, в которых только один из элементов оканчивается на 7, а сумма элементов тройки больше максимального элемента последовательности, оканчивающегося на 3. В ответе запишите количество найденных троек, затем минимальную из сумм элементов таких троек. В данной задаче под тройкой подразумевается три идущих подряд элемента последовательности.
Файл к варианту: Ege17_v8.txt (8000 чисел, по одному в строке).
Разбор
Шаг 1. Значение для сравнения. Сначала один раз проходим по всей последовательности: максимальный элемент, оканчивающийся на 3 — 99733.
Шаг 2. Перебор троек. Для каждого i берём элементы a[i]…a[i + 2], считаем, сколько из них оканчиваются на 7, и проверяем сумму.
Итог: 809 троек, наименьшая сумма 99772.
Ответ: 809 99772
Решение на Python. Положите файл варианта рядом с программой.
a = [int(x) for x in open('Ege17_v8.txt')]
R = max(x for x in a if abs(x) % 10 == 3)
count = 0
best = 10 ** 9
for i in range(len(a) - 2):
g = a[i:i + 3]
c = sum(1 for x in g if abs(x) % 10 == 7)
s = sum(g)
if c == 1 and s > R:
count += 1
best = min(best, s)
print(count, best)
Вариант 9
пары · трёхзначные
В файле содержится последовательность целых чисел. Её элементы могут принимать целые значения от 1 до 100 000 включительно. Определите количество пар последовательности, в которых только один из элементов является трёхзначным числом, а сумма элементов пары кратна минимальному двузначному элементу последовательности. В ответе запишите количество найденных пар, затем минимальную из сумм элементов таких пар. В данной задаче под парой подразумевается два идущих подряд элемента последовательности.
Файл к варианту: Ege17_v9.txt (8000 чисел, по одному в строке).
Разбор
Шаг 1. Значение для сравнения. Сначала один раз проходим по всей последовательности: минимальный двузначный элемент — 10.
Шаг 2. Перебор пар. Для каждого i берём элементы a[i]…a[i + 1], считаем, сколько из них трёхзначные, и проверяем сумму.
Итог: 153 пар, наименьшая сумма 180.
Ответ: 153 180
Решение на Python. Положите файл варианта рядом с программой.
a = [int(x) for x in open('Ege17_v9.txt')]
R = min(x for x in a if 10 <= abs(x) <= 99)
count = 0
best = 10 ** 9
for i in range(len(a) - 1):
g = a[i:i + 2]
c = sum(1 for x in g if 100 <= abs(x) <= 999)
s = sum(g)
if c == 1 and s % R == 0:
count += 1
best = min(best, s)
print(count, best)
Вариант 10
пары · двузначные
В файле содержится последовательность целых чисел. Её элементы могут принимать целые значения от 1 до 100 000 включительно. Определите количество пар последовательности, в которых оба элемента являются двузначными числами, а сумма элементов пары кратна минимальному трёхзначному элементу последовательности. В ответе запишите количество найденных пар, затем максимальную из сумм элементов таких пар. В данной задаче под парой подразумевается два идущих подряд элемента последовательности.
Файл к варианту: Ege17_v10.txt (10000 чисел, по одному в строке).
Разбор
Шаг 1. Значение для сравнения. Сначала один раз проходим по всей последовательности: минимальный трёхзначный элемент — 100.
Шаг 2. Перебор пар. Для каждого i берём элементы a[i]…a[i + 1], считаем, сколько из них двузначные, и проверяем сумму.
Итог: 6 пар, наибольшая сумма 100.
Ответ: 6 100
Решение на Python. Положите файл варианта рядом с программой.
a = [int(x) for x in open('Ege17_v10.txt')]
R = min(x for x in a if 100 <= abs(x) <= 999)
count = 0
best = -10 ** 9
for i in range(len(a) - 1):
g = a[i:i + 2]
c = sum(1 for x in g if 10 <= abs(x) <= 99)
s = sum(g)
if c == 2 and s % R == 0:
count += 1
best = max(best, s)
print(count, best)
Для самостоятельного решения
Варианты 11–15 без разборов. Ответ можно проверить кнопкой.
Вариант 11
пары · четырёхзначные
В файле содержится последовательность целых чисел. Её элементы могут принимать целые значения от −100 000 до 100 000 включительно. Определите количество пар последовательности, в которых только один из элементов является четырёхзначным числом, а сумма элементов пары кратна минимальному двузначному элементу последовательности. В ответе запишите количество найденных пар, затем максимальную из сумм элементов таких пар. В данной задаче под парой подразумевается два идущих подряд элемента последовательности. Число считается двузначным (трёхзначным, …) по записи модуля: −45 — двузначное число.
Файл к варианту: Ege17_v11.txt (5000 чисел, по одному в строке).
Вариант 12
тройки · двузначные
В файле содержится последовательность целых чисел. Её элементы могут принимать целые значения от 1 до 100 000 включительно. Определите количество троек последовательности, в которых хотя бы один из элементов является двузначным числом, а сумма элементов тройки больше максимального элемента последовательности, оканчивающегося на 3. В ответе запишите количество найденных троек, затем максимальную из сумм элементов таких троек. В данной задаче под тройкой подразумевается три идущих подряд элемента последовательности.
Файл к варианту: Ege17_v12.txt (8000 чисел, по одному в строке).
Вариант 13
пары · оканчиваются на 7
В файле содержится последовательность целых чисел. Её элементы могут принимать целые значения от 1 до 100 000 включительно. Определите количество пар последовательности, в которых хотя бы один из элементов оканчивается на 7, а сумма элементов пары кратна минимальному трёхзначному элементу последовательности. В ответе запишите количество найденных пар, затем минимальную из сумм элементов таких пар. В данной задаче под парой подразумевается два идущих подряд элемента последовательности.
Файл к варианту: Ege17_v13.txt (8000 чисел, по одному в строке).
Вариант 14
пары · двузначные
В файле содержится последовательность целых чисел. Её элементы могут принимать целые значения от −100 000 до 100 000 включительно. Определите количество пар последовательности, в которых только один из элементов является двузначным числом, а сумма элементов пары кратна минимальному трёхзначному элементу последовательности. В ответе запишите количество найденных пар, затем минимальную из сумм элементов таких пар. В данной задаче под парой подразумевается два идущих подряд элемента последовательности. Число считается двузначным (трёхзначным, …) по записи модуля: −45 — двузначное число.
Файл к варианту: Ege17_v14.txt (10000 чисел, по одному в строке).
Вариант 15
тройки · четырёхзначные
В файле содержится последовательность целых чисел. Её элементы могут принимать целые значения от 1 до 100 000 включительно. Определите количество троек последовательности, в которых только один из элементов является четырёхзначным числом, а сумма элементов тройки кратна минимальному двузначному элементу последовательности. В ответе запишите количество найденных троек, затем максимальную из сумм элементов таких троек. В данной задаче под тройкой подразумевается три идущих подряд элемента последовательности.
Файл к варианту: Ege17_v15.txt (5000 чисел, по одному в строке).