Решение: Свободные места в рядах
При онлайн-покупке билета на концерт известно, какие места в зале уже заняты. Необходимо купить билет на такое место в ряду, чтобы перед ним как можно больше идущих подряд кресел с таким же номером было свободно. Если места, удовлетворяющие этому условию, есть в нескольких рядах, нужно выбрать ряд, расположенный как можно ближе к сцене. Нумерация рядов и мест ведётся с 1. Гарантируется, что хотя бы одно подходящее место в зале есть.
Входные данные находятся в прилагаемом файле. В первой строке указаны $N$, $M$ и $K$: количество занятых мест, количество рядов и количество мест в каждом ряду. В следующих $N$ строках записаны пары: номер ряда и номер занятого места.
Решение по шагам
4 шагаСгруппируем занятые места по номерам рядов и отсортируем номера мест внутри каждого ряда.
Для двух соседних занятых мест с номерами $a$ и $b$ количество свободных мест между ними равно $b-a-1$. Если первое занятое место в ряду имеет номер $b$, перед ним свободно $b-1$ кресел.
$$free=b-a-1$$Для каждого ряда выбираем максимальное значение количества свободных кресел. Затем среди рядов с одинаковым максимумом выбираем ряд с наименьшим номером.
$$best=\max(free)$$Конкретная пара чисел определяется содержимым прилагаемого входного файла.
Определяется данными прилагаемого файла
Этот ответ получен в разборе, но не сверен с официальным ключом из банка — проверьте выкладки, прежде чем заучивать результат.
Где здесь ошибаются
Не учитывают свободные кресла перед первым занятым местом в ряду.
Считают разность номеров занятых мест без вычитания единицы.
При равенстве максимального количества свободных кресел выбирают ряд с большим номером.
Не сортируют занятые места внутри ряда.