Решение: Поиск лучшего свободного места
При онлайн-покупке билета на концерт известно, какие места в зале уже заняты. Необходимо купить билет на такое место в ряду, чтобы перед ним как можно больше идущих подряд кресел с таким же номером было свободно. Если места, удовлетворяющие этому условию, есть в нескольких рядах, нужно выбрать ряд, расположенный как можно ближе к сцене. Если в этом ряду таких мест несколько, найдите кресло с наименьшим номером. Нумерация рядов и мест ведётся с 1. Гарантируется, что хотя бы одно такое кресло в зале есть.
Входной файл содержит числа $N$, $M$ и $K$: количество занятых мест, количество рядов и количество мест в каждом ряду. Далее идут $N$ пар: номер ряда и номер занятого места. Используйте данные из прилагаемого файла.
Решение по шагам
4 шагаСформировать сведения о занятых местах для каждого ряда.
В каждом ряду просмотреть места по возрастанию номера. Для свободного места считать количество идущих подряд свободных мест непосредственно перед ним.
Сравнивать найденные места по трём критериям: сначала максимальная длина свободной последовательности перед креслом, затем минимальный номер ряда, затем минимальный номер места.
Вывести номер выбранного ряда и номер выбранного места.
Точный ответ невозможно определить без содержимого прилагаемого входного файла.
Этот ответ получен в разборе, но не сверен с официальным ключом из банка — проверьте выкладки, прежде чем заучивать результат.
Где здесь ошибаются
Учитывают свободные места после выбранного кресла вместо мест перед ним.
При равенстве длины последовательности выбирают не самый близкий к сцене ряд.
Забывают применить правило выбора места с наименьшим номером внутри ряда.