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

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

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

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

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

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

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