Конфликты в школьном расписании
Просмотр в формате PDFЗавуч проверяет школьное расписание и ищет конфликтующие уроки.
Каждый урок описывается пятью значениями: d, p, teacher, room, subject, где:
d— день недели;p— номер пары;teacher— учитель;room— кабинет;subject— предмет.
Дни недели нумеруются от 1 до 5, а номера пар — от 1 до 8.
Два урока считаются конфликтующими, если они проходят в один и тот же день d и в одну и ту же пару p, и при этом выполняется хотя бы одно из условий:
- у них совпадает
teacher, то есть один и тот же учитель поставлен на два урока одновременно; - у них совпадает
room, то есть один и тот же кабинет занят двумя уроками одновременно.
Дано n уроков. Уроки нумеруются от 1 до n в порядке ввода. Требуется найти количество различных пар конфликтующих уроков. Пара (i, j) с i < j считается одной парой.
Одинаковые записи уроков могут встречаться несколько раз. Каждое такое появление считается отдельным уроком.
Входные данные
В первой строке задано целое число n — количество уроков.
В следующих n строках задано по пять значений d p teacher room subject, разделённых пробелами.
Ввод осуществляется через стандартный ввод.
Выходные данные
В первой строке выведите целое число k — количество конфликтующих пар.
В следующих k строках выведите пары номеров уроков i j (i < j) — по одной паре в строке.
Пары необходимо выводить в лексикографическом порядке: сначала по возрастанию i, а при равенстве — по возрастанию j.
Вывод осуществляется через стандартный вывод.
Ограничения
1 <= n <= 2 * 10^51 <= d <= 51 <= p <= 8teacher— непустая строка из строчных латинских букв длиной не более201 <= room <= 1000subject— непустая строка из строчных латинских букв длиной не более20
Примеры
Пример 1
Входные данные
1
1 1 trbbbbbbbbb 1 svzsgbbbbbb
Выходные данные
0
Пример 2
Входные данные
2
2 3 anna 201 math
2 3 anna 201 math
Выходные данные
1
1 2
Комментарии