26.05 Поиск мест на поле (билеты, саженцы, матрицы)
Ошибка.
Попробуйте повторить позже
При проведении эксперимента заряженные частицы попадают на чувствительный экран, представляющий из себя
матрицу размером на
точек. При попадании каждой частицы на экран в протоколе фиксируются
координаты попадания: номер ряда (целое число от
до
) и номер позиции в ряду (целое число от
до
). Точка экрана, в которую попала хотя бы одна частица, считается светлой, точка, в которую ни одна частица
не попала — тёмной. При анализе результатов эксперимента рассматривают ряды, в которых и первая и последняя
точка светлые. Вам необходимо по заданному протоколу определить максимальное количество точек в таком
ряду.
Входные данные
Первая строка входного файла содержит целое число — общее количество частиц, попавших на экран. Каждая
из следующих
строк содержит
целых числа: номер ряда и номер позиции в ряду.
Выходные данные
В ответе запишите два целых числа: сначала максимальное количество светлых точек в подходящем ряду, затем – номер ряда, в котором встречается такое количество точек.
Решение (Excel/LibreOffice)
Сначала перенесем данные из файла в Excel, скопировав и вставив с разделителем пробел, а также удалим первую строчку.
Настраиваемой сортировкой отсортируем в первую очередь по столбцу по возрастанию, во вторую - по столбцу
по возрастанию.
Выделим полностью столбцы и
, перейдём в раздел Данные и нажимаем на инструмент Удалить дубликаты,
в появившемся окне выбираем Выделить все и нажимаем ОК (это удалит деревья, которые были по ошибке сняты
дважды).
В LibreOffice Calc необходимо также выделить оба столбца, применить фильтр и перейти в раздел Фильтр по условию -> Стандартный фильтр.
В условиях фильтра необходимо через И выбрать столбцы и
, установить значение Не пусто и поставить
галочку напротив Без повторений. После чего нужно скопировать отфильтрованные значения на новый лист и
работать уже там.
Чтобы определить самую длинную линию, в ячейку запиешем ”нет”, а в ячейку
запишем и растянем до
конца таблицы следующую формулу:
=ЕСЛИ(A2=A1;C1;ЕСЛИ(B2=1;”да”;”нет”))
Таким образом ”да” проставится для рядов, начинающихся со светлой точки. В ячейку запишем 1, а в ячейку
запишем и растянем до конца таблицы следующую формулу:
=ЕСЛИ(A2=A1;D1+1;1)
С её помощью мы посчитаем количество точек в каждом ряду. В ячейку запишем и растянем до конца таблицы
следующую формулу:
=ЕСЛИ(И(A1<>A2;C1=”да”;B1=10000);1;0)
С помощью неё мы отделим ряды, и начавшиеся и кончившиеся светлой точкой.
Отфильтруем данные по столбцу , убрав все нули, и получим ряды, для которых выполнилось условие. Значения
из столбцов
и
запишем в ответ.
Решение (Python)
f = open(’m7_26_18_04__3u8yv.txt’) n = int(f.readline()) tr = [list(map(int, i.split())) for i in f] tr.sort() new_tr = [[0] * 10_001 for i in range(10_001)] # матрица свободных и занятых мест for x, y in tr: new_tr[x][y] = 1 # отмечаем, что место - занято max_count = 1 row = 0 for i in range(len(new_tr)): # если первое и последнее место в ряду - заняты и при этом в ряду максимальное количество светлых точек if new_tr[i][1] == new_tr[i][-1] == 1 and sum(new_tr[i]) > max_count: max_count = sum(new_tr[i]) row = i print(max_count, row)
Специальные программы

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

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

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

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

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

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