VK Cup 2017 - Квалификация 1 |
---|
Закончено |
Поликарп учится в университете в группе, состоящей из n студентов (включая его самого). Все они зарегистрированы в социальной сети «ЕстьКонтакт!».
Не все из студентов одинаково общительны. Про каждого студента известна величина ai — максимальное количество сообщений, которые i-й студент согласен послать за сутки. Студент не может посылать сообщения сам себе.
Рано утром Поликарп узнал важную новость о том, что завтра состоится зачёт по программированию. По этой причине эту новость необходимо срочно сообщить всем одногруппникам с помощью личных сообщений.
Перед вами стоит задача составить такой план использования личных сообщений, чтобы:
Считайте, что все студенты пронумерованы различными целыми числами от 1 до n, а Поликарп всегда имеет номер 1.
В этой задаче вам не следует минимизировать количество сообщений, момент времени, когда все узнают о зачете или еще какой-либо другой параметр. Найдите любой способ использования личных сообщений, который удовлетворяет требованиям выше.
В первой строке следует целое положительное число n (2 ≤ n ≤ 100) — количество студентов.
Во второй строке следует последовательность a1, a2, ..., an (0 ≤ ai ≤ 100), где ai равно максимальному количеству сообщений, которые может послать i-й студент. Считайте, что Поликарп всегда имеет номер 1.
Если сообщить всем студентам новость о зачёте невозможно, в первую строку выведите -1.
В противном случае, в первую строку выведите целое число k — количество сообщений, которые будут посланы. В каждой из следующих k строк выведите по два различных целых числа f и t, означающие, что студент номер f отправил сообщение с новостью студенту номер t. Все сообщения должны быть выведены в хронологическом порядке, то есть студент, отправляющий сообщение, уже должен знать новость. Допускается, что студенты могут получать повторные сообщения с новостью о зачёте.
Если ответов несколько, разрешается вывести любой из них.
4
1 2 1 0
3
1 2
2 4
2 3
6
2 0 1 3 2 0
6
1 3
3 4
1 2
4 5
5 6
4 6
3
0 2 2
-1
В первом примере Поликарп (студент с номером 1) может отправить сообщение студенту с номером 2, который может после этого отправить сообщение студентам номер 3 и 4. Таким образом, все студенты узнают о зачёте.
Название |
---|