301807: CF341E. Candies Game

Memory Limit:256 MB Time Limit:2 S
Judge Style:Text Compare Creator:
Submit:0 Solved:0

Description

Candies Game

题意翻译

有$n$个盒子,第$i$个盒子里面有$a_i$个糖果。每次选择两个盒子$i,j$,假设$a_i \le a_j$。然后从第$j$个盒子中拿出$a_i$个糖果,放到第$i$个盒子里面(显然,如果$a_i=a_j$,那么第$j$个盒子会变成空的)。你可以这样操作任意多次。要求最后只有$2$个盒子里面有糖果。输出方案。如果无论如何操作也无法满足条件,输出"$-1$"

题目描述

Iahub is playing an uncommon game. Initially, he has $ n $ boxes, numbered 1, 2, 3, $ ... $ , $ n $ . Each box has some number of candies in it, described by a sequence $ a_{1} $ , $ a_{2} $ , $ ... $ , $ a_{n} $ . The number $ a_{k} $ represents the number of candies in box $ k $ . The goal of the game is to move all candies into exactly two boxes. The rest of $ n-2 $ boxes must contain zero candies. Iahub is allowed to do several (possible zero) moves. At each move he chooses two different boxes $ i $ and $ j $ , such that $ a_{i}<=a_{j} $ . Then, Iahub moves from box $ j $ to box $ i $ exactly $ a_{i} $ candies. Obviously, when two boxes have equal number of candies, box number $ j $ becomes empty. Your task is to give him a set of moves such as Iahub to archive the goal of the game. If Iahub can't win the game for the given configuration of boxes, output -1. Please note that in case there exist a solution, you don't need to print the solution using minimal number of moves.

输入输出格式

输入格式


The first line of the input contains integer $ n $ ( $ 3<=n<=1000 $ ). The next line contains $ n $ non-negative integers: $ a_{1},a_{2},...,a_{n} $ — sequence elements. It is guaranteed that sum of all numbers in sequence $ a $ is up to $ 10^{6} $ .

输出格式


In case there exists no solution, output -1. Otherwise, in the first line output integer $ c $ $ (0<=c<=10^{6}) $ , representing number of moves in your solution. Each of the next $ c $ lines should contain two integers $ i $ and $ j $ $ (1<=i,j<=n,i≠j) $ : integers $ i $ , $ j $ in the $ k $ th line mean that at the $ k $ -th move you will move candies from the $ j $ -th box to the $ i $ -th one.

输入输出样例

输入样例 #1

3
3 6 9

输出样例 #1

2
2 3
1 3

输入样例 #2

3
0 1 0

输出样例 #2

-1

输入样例 #3

4
0 1 1 0

输出样例 #3

0

说明

For the first sample, after the first move the boxes will contain 3, 12 and 3 candies. After the second move, the boxes will contain 6, 12 and 0 candies. Now all candies are in exactly 2 boxes. For the second sample, you can observe that the given configuration is not valid, as all candies are in a single box and they should be in two boxes. Also, any move won't change the configuration, so there exists no solution. For the third sample, all candies are already in 2 boxes. Hence, no move is needed.

Input

题意翻译

有$n$个盒子,第$i$个盒子里面有$a_i$个糖果。每次选择两个盒子$i,j$,假设$a_i \le a_j$。然后从第$j$个盒子中拿出$a_i$个糖果,放到第$i$个盒子里面(显然,如果$a_i=a_j$,那么第$j$个盒子会变成空的)。你可以这样操作任意多次。要求最后只有$2$个盒子里面有糖果。输出方案。如果无论如何操作也无法满足条件,输出"$-1$"

加入题单

上一题 下一题 算法标签: