При попадании каждой частицы на экран в протоколе фиксируются
Условие
При проведении эксперимента заряженные частицы попадают на чувствительный экран, представляющий из себя матрицу размером 100 000 на 100 000 точек. При попадании каждой частицы на экран в протоколе фиксируются координаты попадания: номер ряда (целое число от 1 до 100 000) и номер позиции в ряду (целое число от 1 до 100 000). Точка экрана, в которую попала хотя бы одна частица, считается светлой, точка, в которую ни одна частица не попала, — тёмной. При анализе результатов эксперимента рассматривают изолированные точки. Точка называется изолированной, если эта точка светлая (независимо от того, сколько частиц в неё попало), а другие светлые точки в том же ряду либо отсутствуют, либо находятся на расстоянии более 500. Вам необходимо по заданному протоколу определить наибольшее количество изолированных точек, расположенных в одном ряду, и номер ряда, в котором это количество встречается. Если таких рядов несколько, укажите максимально возможный номер. Задание 26 Входные данные.Первая строка входного файла содержит целое число N — общее количество частиц, попавших на экран. Каждая из следующих N строк содержит 2 целых числа: номер ряда и номер позиции в ряду. В ответе запишите два целых числа: сначала максимальное количество изолированных точек в одном ряду, затем — номер ряда, в котором это количество встречается. Ответ:
Ответ
2058612
Решение по шагам
Как рассуждать
Решение. Приведём решение на языке Python. f = open('26.txt')N = int(f.readline())matrix = [[] for i in range(100001)]n_row = {}maxi = 0for i in f: row, cell = map(int, i.split()) if cell not in matrix[row]: matrix[row].append(cell)for i in range(1, 100001): if matrix[i]: current = [-100001] + sorted(matrix[i]) + [100001] tmp = sum(current[j] - current[j-1] > 500 and current[j+1] - current[j] > 500 for j in range(1, len(current) - 1)) maxi = max(maxi, tmp) n_row[i] = tmpprint(maxi, list(dict(sorted(n_row.items(), key=lambda n_row:n_row[1])))[-1]) Ответ: 20;
Осталось ещё 1 шаг — откроются после входа:
- Шаг 2
Бесплатно · займёт минуту