В лесничестве саженцы сосны высадили параллельными рядами, которые пронумерованы идущими подряд натуральными числами. Растения в каждом ряду пронумерованы натуральными числами начиная с единицы.
По данным аэрофотосъёмки известно, в каких рядах и на каких местах растения не прижились. Найдите ряд с наибольшим номером, в котором есть ровно 13 идущих подряд свободных мест для посадки новых сосен, таких, что непосредственно слева и справа от них в том же ряду растут сосны. Гарантируется, что есть хотя бы один ряд, удовлетворяющий этому условию. В ответе запишите два целых числа: наибольший номер ряда и наименьший номер места для посадки из числа найденных в этом ряду подходящих последовательностей из 13 свободных мест.
Входные данные.
В первой строке входного файла находится число N — количество прижившихся саженцев сосны (натуральное число, не превышающее 20000). Каждая из следующих N строк содержит два натуральных числа, не превышающих 100000: номер ряда и номер места в этом ряду, на котором растёт деревце.
Выходные данные
Два целых неотрицательных числа: наибольший номер ряда и наименьший номер места в выбранной последовательности из 13 мест, подходящих для посадки новых сосен.
Добавлено: 17.04.26 21:08
Приведём решение на Python:
f = open("26_2.txt")
_ = f.readline()
a = []
for line in f.readlines():
a.append(list(map(int, line.split())))
a = sorted(a, key=lambda item: item[0] * 2**15 + item[1])
k = 0
r = []
for i in range(len(a) - 2):
if a[i + 1][1] - a[i][1] == 14 and a[i][0] == a[i + 1][0]:
r.append([a[i][0], a[i][1] + 1])
print(sorted(r, key=lambda item: item[0] * 2**15 + item[1])[-1])Ответ: 59966, 50449
Автор - rubygem17
None