В лесополосе осуществляется посадка деревьев. Причем саженцы высаживают рядами на одинаковом расстоянии.
Через какое-то время осуществляется аэросъемка, в результате которой определяется, какие саженцы прижились. Необходимо определить ряд с максимальным номером, в котором есть подряд ровно 11 неприжившихся саженцев, при условии, что справа и слева от них саженц прижились.
В ответе запишите сначала наибольший номер ряда, затем наименьший номер из неприжившихся мест.
Входные данные:
В первой строке входного файла 26.txt находится число N — количество занятых мест(натуральное число, не превышающее 10 000). Каждая из следующих N строк содержит два натуральных числа, не превышающих 100 000: номер ряда и номер места для прижившегося саженца.
Выходные данные:
Два целых неотрицательных числа: максимальный номер ряда, где нашлись обозначенные в задаче места, и минимальный номер подходящего места.
Пример входного файла:
7
40 30
40 34
50 125
50 129
50 64
50 68
Ответ для примера (при поиске 3 подряд идущих неприжившихся саженцах):
50 65
Досрочный ЕГЭ 2022 – задание №26
Решение:
Решение на Python
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
f=open('26.txt') n=int(f.readline()) a=[set() for _ in range(n)] for _ in range(n): x, y = map(int, f.readline().split()) a[x].add(y) mx=0 my=0 for i in range(n): t=sorted(a[i]) for j in range(len(t)-1): if t[j+1]-t[j]==12 and mx!=i: mx=i my=t[j] print(mx, my+1) |
ИЛИ
Решение на Python — Валеев Амир Ильнарович
|
1 2 3 4 5 6 7 8 9 10 11 12 |
n = int(f.readline()) der = [list(map(int,s.split())) for s in f.readlines()] der.sort() der = der[1:] mx = 0 mn = 10**10 for i in range(len(der)-1): if der[i][0] == der[i+1][0]: if der[i+1][1] - der[i][1] == 12: mx = max(der[i][0],mx) mn = min(der[i][1]+1,mn) print(mx,mn) |
Ответ: 2261 5087
