Присоединиться

Информатика·Обработка целочисленной информации·11 класс

При попадании каждой частицы на экран в протоколе фиксируются

Условие

При проведении эксперимента заряженные частицы попадают на чувствительный экран, представляющий из себя матрицу размером 100 000 на 100 000 точек. При попадании каждой частицы на экран в протоколе фиксируются координаты попадания: номер ряда (целое число от 1 до 100 000) и номер позиции в ряду (целое число от 1 до 100 000). Точка экрана, в которую попала хотя бы одна частица, считается светлой, точка, в которую ни одна частица не попала, — тёмной. При анализе результатов эксперимента рассматривают изолированные точки. Точка называется изолированной, если эта точка светлая (независимо от того, сколько частиц в неё попало), а другие светлые точки в том же ряду либо отсутствуют, либо находятся на расстоянии более 500. Вам необходимо по заданному протоколу определить наибольшее количество изолированных точек, расположенных в одном ряду, и номер ряда, в котором это количество встречается. Если таких рядов несколько, укажите максимально возможный номер. Задание 26 Входные данные.Первая строка входного файла содержит целое число N — общее количество частиц, попавших на экран. Каждая из следующих N строк содержит 2 целых числа: номер ряда и номер позиции в ряду. В ответе запишите два целых числа: сначала максимальное количество изолированных точек в одном ряду, затем — номер ряда, в котором это количество встречается. Ответ:

Ответ

2058612

Решение по шагам

  1. Как рассуждать

    Решение. Приведём решение на языке 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
Получить полное решение

Бесплатно · займёт минуту

Другие задачи по теме «Обработка целочисленной информации»