При попадании каждой частицы на экран в протоколе фиксируются
Условие
При проведении эксперимента заряженные частицы попадают на чувствительный экран, представляющий из себя матрицу размером 100 000 на 100 000 точек. При попадании каждой частицы на экран в протоколе фиксируются координаты попадания: номер ряда (целое число от 1 до 100 000) и номер позиции в ряду (целое число от 1 до 100 000).Точка экрана, в которую попала хотя бы одна частица, считается светлой, точка, в которую ни одна частица не попала, — тёмной.При анализе результатов эксперимента рассматривают линии. Линией называют группу светлых точек, расположенных в одном ряду подряд, то есть без тёмных точек между ними. Линия должна содержать не менее 3 светлых точек, слева и справа от линии должна быть тёмная точка или край экрана.Вам необходимо по заданному протоколу определить наибольшее количество линий, расположенных в одном ряду, и номер ряда, в котором это количество встречается. Если таких рядов несколько, укажите максимально возможный номер.Задание 26Входные данные.Первая строка входного файла содержит целое число N — общее количество частиц, попавших на экран. Каждая из следующих N строк содержит 2 целых числа: номер ряда и номер позиции в ряду.В ответе запишите два целых числа: сначала максимальное количество линий в одном ряду, затем — номер ряда, в котором это количество встречается. Ответ:
Ответ
797924
Решение по шагам
Как рассуждать
Решение. Приведем решение на языке Python.f = open('26.txt').readlines()[1:]Sl = {i: [] for i in range(1, 10**5 + 1)} for i in f: ind, v = map(int, i.split()) Sl[ind] += [v] def func(v): st = '' for x, y in zip(v, v[1:]): st += '' if x + 1 == y else ' ' return len([1 for s in (st + '*').split() if len(s) >= 3]) Sl = {i: func(sorted(set(v))) for i, v in Sl.items()}print((t:=max(Sl.values())),\ list(Sl.keys())[::-1][list(Sl.values())[::-1].index(t)]) Ответ: 7
Осталось ещё 1 шаг — откроются после входа:
- Шаг 2
Бесплатно · займёт минуту