Конфликты в школьном расписании

Просмотр в формате PDF

Submit solution


Очки: 170
Ограничение по времени: 2.0s
Ограничение по памяти: 256M

Автор:
Problem types
Allowed languages
C++, Python

Завуч проверяет школьное расписание и ищет конфликтующие уроки.

Каждый урок описывается пятью значениями: 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^5
  • 1 <= d <= 5
  • 1 <= p <= 8
  • teacher — непустая строка из строчных латинских букв длиной не более 20
  • 1 <= room <= 1000
  • subject — непустая строка из строчных латинских букв длиной не более 20

Примеры

Пример 1

Входные данные

1
1 1 trbbbbbbbbb 1 svzsgbbbbbb

Выходные данные

0
Пример 2

Входные данные

2
2 3 anna 201 math
2 3 anna 201 math

Выходные данные

1
1 2

Комментарии

Еще нет ни одного комментария.