New Roads

题意翻译

在Berland有 n 个城市,每一座城市都有一个单独的编号——在 1 到 n 范围内的一个整数,首都的编号是 1。现在,在Berland有一个极其严峻的问题:城市之间没有道路相连。 为了使得每个城市之间都有路相连,要在城市之间建造 n-1 条路。 在建造计划中一共有 t 个整数 a1,a2,...,at,t 等于首都与离首都最远的城市之间的距离。ai 表示一共有 ai 座城市与首都之间的距离是 i。两个城市之间的距离等于从一座城市到另一座城市所经过的道路的数量。 而且,除了首都以外一共会有 k 座城市仅与一条道路相连。这些城市是“死胡同”,它们没有经济吸引力。首都不算在内(即:即使只有一条道路与首都相连,首都也不算在“死胡同”里)。 你的任务是做出符合所有条件的计划,或是说明符合所有条件的计划是不存在的。 输入格式: 输入数据的第一行包括三个整数 n,t,k(2 <= n <= 2*10^5 , 1 <= t , k < n),表示城市总数,首都与距离首都最远的城市之间的距离以及作为“死胡同”的城市个数。 第二行包括一个含有 t 个整数的数列 a1,a2,...,an(1 <= ai <= n),表示与首都距离为 i 的城市有 ai 个。输入数据保证数列里所有数的总和为 n-1。 输出格式: 如果不存在符合全部条件的方案,输出 -1。 否则,在第一行输出一个整数 n,表示城市个数。在接下来的 n-1 行中每一行包括两个整数,表示在这两个城市之间有道路相连。你可以以任意顺序输出。(注:此处任意顺序指道路顺序及每条道路所连接的的城市顺序均可以任意顺序输出) 如果有多组解,输出任意一组。记住首都的编号是 1。 Translated by @radish布団

题目描述

There are $ n $ cities in Berland, each of them has a unique id — an integer from $ 1 $ to $ n $ , the capital is the one with id $ 1 $ . Now there is a serious problem in Berland with roads — there are no roads. That is why there was a decision to build $ n-1 $ roads so that there will be exactly one simple path between each pair of cities. In the construction plan $ t $ integers $ a_{1},a_{2},...,a_{t} $ were stated, where $ t $ equals to the distance from the capital to the most distant city, concerning new roads. $ a_{i} $ equals the number of cities which should be at the distance $ i $ from the capital. The distance between two cities is the number of roads one has to pass on the way from one city to another. Also, it was decided that among all the cities except the capital there should be exactly $ k $ cities with exactly one road going from each of them. Such cities are dead-ends and can't be economically attractive. In calculation of these cities the capital is not taken into consideration regardless of the number of roads from it. Your task is to offer a plan of road's construction which satisfies all the described conditions or to inform that it is impossible.

输入输出格式

输入格式


The first line contains three positive numbers $ n $ , $ t $ and $ k $ ( $ 2<=n<=2·10^{5} $ , $ 1<=t,k<n $ ) — the distance to the most distant city from the capital and the number of cities which should be dead-ends (the capital in this number is not taken into consideration). The second line contains a sequence of $ t $ integers $ a_{1},a_{2},...,a_{t} $ ( $ 1<=a_{i}<n $ ), the $ i $ -th number is the number of cities which should be at the distance $ i $ from the capital. It is guaranteed that the sum of all the values $ a_{i} $ equals $ n-1 $ .

输出格式


If it is impossible to built roads which satisfy all conditions, print -1. Otherwise, in the first line print one integer $ n $ — the number of cities in Berland. In the each of the next $ n-1 $ line print two integers — the ids of cities that are connected by a road. Each road should be printed exactly once. You can print the roads and the cities connected by a road in any order. If there are multiple answers, print any of them. Remember that the capital has id $ 1 $ .

输入输出样例

输入样例 #1

7 3 3
2 3 1

输出样例 #1

7
1 3
2 1
2 6
2 4
7 4
3 5

输入样例 #2

14 5 6
4 4 2 2 1

输出样例 #2

14
3 1
1 4
11 6
1 2
10 13
6 10
10 12
14 12
8 4
5 1
3 7
2 6
5 9

输入样例 #3

3 1 1
2

输出样例 #3

-1