АВТ
Language: Russian
English

Remote Training on Programming

Problems Online status Contests
News FAQ E-learning
For authors:
Register  ||  Login
 
Hello, Guest! Please login or register.

1436. Kindergartens

Time Limit: 2 seconds
Memory Limit:262144KB
Points:100
View Problem Statistics Submit Problem added Игорь Андрианов

В городе имеется N детских садов. Для каждого сада известно количество свободных мест для набора новых детей в младшие группы.

Для приёма заявок от родителей была создана комиссия. Всего в комиссию поступило M заявок. В каждой заявке родители указали список детских садов, которые для них по какой-то причине предпочтительны (например, расположены рядом с домом либо местом работы родителей).

Обработка заявок проводится в порядке, в котором они поступили. Первая заявка гарантированно выполняется. Вторая заявка выполняется в том случае, если при этом возможно также выполнить и первую (возможно, выбрав для неё другой садик). Каждая следующая заявка обрабатывается аналогично то есть i-я заявка выполняется в том случае, если при этом по-прежнему можно выполнить все заявки, признанные выполнимыми на предыдущих шагах.

Определите, какие заявки получится выполнить, и укажите подходящий вариант распределения заявок по детским садам.

Примечание. Вероятно, невыполненные заявки комиссия потом всё же распределит по оставшимся местам, но уже без учёта предпочтений. Впрочем, к решению данной задачи это совершенно не относится.

 

Входные данные. Первая строка входных данных содержит два разделенных пробелом целых числа N и M, где N — количество детских садов в городе, M — количество поданных заявок (1 ≤ N ≤ 100; 1 ≤ M ≤ 1000).

Вторая строка содержит N разделённых пробелом целых чисел — количество мест в каждом садике.

Каждая из следующих M строк содержит описание очередной заявки. Описание заявки представляет собой несколько разделенных пробелом целых чисел — вначале идёт количество садиков Qi, а затем Qi чисел — номера садиков (в диапазоне от 1 до N).

 

Выходные данные. В первую строку выходных данных выведите целое число K —количество заявок, которые получилось удовлетворить. В каждой из следующих K строк выведите два разделенных пробелом целых числа номер очередной заявки  и номер назначенного ей детского сада.

Номера заявок в выводе должны идти по возрастанию. Если возможны несколько вариантов назначения найденных заявок по детским садам, то выведите любой.

 

Примеры

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

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

2 5

2 1

1 2

2 1 2

1 2

1 1

1 2

3

1 2

2 1

4 1

 

 


View Problem Statistics Submit Problem discussion Author/source:
Problems from Contests and Camps / Vologda Students Contests / XVIII Interuni Olympiad 2015 /
1435. I - DNA Analysis 1436. 1437. Y - Number e
Problems from Contests and Camps / School olympiads and couses of Vologda region / Impulse - 2019 / Additional Problems /
1435. 09 - DNA Analysis 1436. 1437. 11 - Number e 1633. 12 - Write Letters 1634. 13 - Pascal 2.0
time generating 0.109 sec.
© Copyright VSU, AVT, Nosov D.A., Andrianov I.A.