(Иглин К.) При онлайн-покупке билета на концерт известно, какие места в зале уже заняты.
Необходимо купить два билета на такие соседние места в одном ряду, чтобы за ними все кресла с такими же номерами были свободны, а ряд находился как можно ближе к сцене.
Если в этом ряду таких пар мест несколько, найдите пару с наибольшими номерами.
В ответе запишите два целых числа: искомый номер ряда и наибольший номер места в найденной паре.
Нумерация рядов и мест ведётся с 1.
Гарантируется, что хотя бы одна такая пара в зале есть.
Входные данные
В первой строке входного файла находятся три числа: N — количество занятых мест в зале (целое положительное число, не превышающее 50 000), M — количество рядов (целое положительное число, не превышающее 100 000) и K — количество мест в каждом ряду (целое положительное число, не превышающее 100 000).
В следующих N строках находятся пары натуральных чисел: номер ряда и номер места занятого кресла соответственно (первое число не превышает значения M, а второе — K).
Выходные данные
Два целых положительных числа: наименьший номер ряда и наибольший номер места в найденной паре кресел.
Типовой пример организации данных во входном файле
7 7 8
1 1
6 6
5 5
6 7
4 4
2 2
3 3
Типовой пример имеет иллюстративный характер.
Для выполнения задания используйте данные из прилагаемого файла.
Как решать. Нужна пара соседних свободных мест в одном ряду так, чтобы за ними (в рядах с большими номерами) те же номера мест были свободны.
Ряд — как можно ближе к сцене (меньший номер).
При ничьей — пара с наибольшими номерами мест.
1) Упорядочить занятые места. В A — ряд, в B — номер места.
В C2 ключ =B2*100001+A2, протянуть и отсортировать по C: сначала по месту, внутри места по ряду.
2) Самый дальний занятый ряд по месту. В D2:
=ЕСЛИ(B2<>B3;A2;"")
, протянуть.
На последней строке группы с одинаковым B остаётся наибольший ряд — «глубина» занятости этого места (если места нет в списке — глубина 0).
3) Пара мест s и s+1. Кандидатный ряд = макс(глубина s, глубина s+1) + 1.
Он должен быть ≤ M (из B1).
Среди всех таких пар берём минимальный ряд, затем наибольший номер места в паре (s+1).
4) Ответ. Ряд 207, место 4466 (пара 4465–4466): у места 4465 глубина 206, у 4466 — 25, значит первый подходящий ряд 207.
Ответ: 207 4466.