26.05 Поиск мест на поле (билеты, саженцы, матрицы)
Ошибка.
Попробуйте повторить позже
В лесополосе осуществляется посадка деревьев. Причем саженцы высаживают рядами на одинаковом расстоянии.
Через какое-то время осуществляется аэросъемка, в результате которой определяется, какие саженцы прижились.
Необходимо определить ряд с максимальным номером, в котором есть ровно неприжившихся саженца, при условии,
что справа и слева от них саженцы прижились, а также прижился ровно один саженец между ними. При
аэросъемке была совершена ошибка — одно и то же дерево могло быть снято дважды. В ответе запишите
сначала наибольший номер ряда, затем наименьший номер из найденных
неприжившихся мест в этом
ряду.
Входные данные:
В первой строке входного файла находится число — количество сфотографированных прижившися саженцев
(натуральное число, не превышающее
). Каждая из следующих
строк содержит два натуральных числа, не
превышающих
: номер ряда и номер саженца.
Выходные данные:
Два целых неотрицательных числа: максимальный номер ряда, где нашлись обозначенные в задаче саженцы, и минимальный номер подходящего саженца.
Решение при помощи электронных таблиц:
Сначала перенесем данные из файла в Excel, скопировав и вставив с разделителем пробел, а также удалим первую строчку.
Настраиваемой сортировкой отсортируем в первую очередь по столбцу по возрастанию, во вторую - по столбцу
по возрастанию.
Выделим полностью столбцы и
, перейдём в раздел Данные и нажимаем на инструмент Удалить дубликаты,
в появившемся окне выбираем Выделить все и нажимаем ОК (это удалит деревья, которые были по ошибке сняты
дважды).
В LibreOffice Calc необходимо также выделить оба столбца, применить фильтр и перейти в раздел Фильтр по условию -> Стандартный фильтр.
В условиях фильтра необходимо через И выбрать столбцы и
, установить значение Не пусто и поставить
галочку напротив Без повторений. После чего нужно скопировать отфильтрованные значения на новый лист и
работать уже там.
Чтобы определить, пропущены ли два саженца через один среди прижившихся, в ячейку запишем формулу и
растянем её до конца таблицы:
=ЕСЛИ(И(A1=A2;A2=A3;B2-B1=2;B3-B2=2);B1+1;0)
Условие обеспечивает попадание трех прижившихся саженцов в один ряд,
- нахождение трёх прижившихся саженцев через одно свободное место друг от
друга. Если условия выполнились - записываем в ячейку номер первого неприжившегося саженца из
2-х.
Отфильтруем данные по столбцу , убрав все нули, и получим места, для которых выполнилось условие. Значения
из столбцов
и
последней строчки запишем в ответ.
Программное решение
f = open(’26_dif_2__40zqo.txt’) n = int(f.readline()) tr = [list(map(int, i.split())) for i in f] # считываем файл tr.sort() # сортируем значения в столбцах по возрастанию max_row = 0 # максимальный ряд min_place = 10 ** 10 # минимальной подходящее место в максимальном ряду for i in range(len(tr) - 2): # если ряд трёх рядом стоящих в списке мест совпадает if tr[i][0] == tr[i + 1][0] == tr[i + 2][0]: # проверка, что между каждыми двумя прижившимися саженцами есть одно свободное место if tr[i + 1][1] - tr[i][1] == tr[i + 2][1] - tr[i + 1][1] == 2: if max_row == tr[i][0]: min_place = min(min_place, tr[i][1] + 1) # вычисляем минимальное место в максимальном ряду else: min_place = tr[i][1] + 1 max_row = tr[i][0] print(max_row, min_place)
Специальные программы

Программа
лояльности v2.0
Приглашай друзей в Школково и получай вознаграждение до 10%!

Крути рулетку
и выигрывай призы!
Крути рулетку и покупай курсы со скидкой, которая привязывается к вашему аккаунту.

Бесплатное онлайн-обучение
Для школьников из приграничных территорий России, проживающих в ДНР, ЛНР, Херсонской, Запорожской, Белгородской, Курской, Брянской областях и Крыму.

Налоговые вычеты
Узнай, как получить налоговый вычет при оплате обучения в «Школково».

Специальное предложение
для учителей
Бесплатный доступ к любому курсу подготовки к ЕГЭ, ОГЭ и олимпиадам от «Школково». Мы с вами делаем общее и важное дело, а потому для нас очень значимо быть чем-то полезными для учителей по всей России!

Вернём деньги за курс
за твою сотку на ЕГЭ
Сдать экзамен на сотку и получить обратно деньги за подготовку теперь вполне реально!