CF1684G.Euclid Guess

普及/提高-

通过率:0%

AC君温馨提醒

该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。

题目描述

Let's consider Euclid's algorithm for finding the greatest common divisor, where tt is a list:

<pre class="verbatim"><br></br>function Euclid(a, b):<br></br>    if a < b:<br></br>        swap(a, b)<br></br><br></br>    if b == 0:<br></br>        return a<br></br><br></br>    r = reminder from dividing a by b<br></br>    if r > 0:<br></br>        append r to the back of t<br></br><br></br>    return Euclid(b, r)<br></br>

There is an array pp of pairs of positive integers that are not greater than mm . Initially, the list tt is empty. Then the function is run on each pair in pp . After that the list tt is shuffled and given to you.

You have to find an array pp of any size not greater than 21042 \cdot 10^4 that produces the given list tt , or tell that no such array exists.

输入格式

The first line contains two integers nn and mm ( 1n1031 \le n \le 10^3 , 1m1091 \le m \le 10^9 ) — the length of the array tt and the constraint for integers in pairs.

The second line contains nn integers t1,t2,,tnt_1, t_2, \ldots, t_n ( 1tim1 \le t_i \le m ) — the elements of the array tt .

输出格式

  • If the answer does not exist, output 1-1 .
  • If the answer exists, in the first line output kk ( 1k21041 \le k \le 2 \cdot 10^4 ) — the size of your array pp , i. e. the number of pairs in the answer. The ii -th of the next kk lines should contain two integers aia_i and bib_i ( 1ai,bim1 \le a_i, b_i \le m ) — the ii -th pair in pp .

If there are multiple valid answers you can output any of them.

输入输出样例

  • 输入#1

    7 20
    1 8 1 6 3 2 3

    输出#1

    3
    19 11
    15 9
    3 7
  • 输入#2

    2 10
    7 1

    输出#2

    -1
  • 输入#3

    2 15
    1 7

    输出#3

    1
    15 8
  • 输入#4

    1 1000000000
    845063470

    输出#4

    -1

说明/提示

In the first sample let's consider the array tt for each pair:

  • (19,11)(19,\, 11) : t=[8,3,2,1]t = [8, 3, 2, 1] ;
  • (15,9)(15,\, 9) : t=[6,3]t = [6, 3] ;
  • (3,7)(3,\, 7) : t=[1]t = [1] .

So in total t=[8,3,2,1,6,3,1]t = [8, 3, 2, 1, 6, 3, 1] , which is the same as the input tt (up to a permutation).

In the second test case it is impossible to find such array pp of pairs that all integers are not greater than 1010 and t=[7,1]t = [7, 1]

In the third test case for the pair (15,8)(15,\, 8) array tt will be [7,1][7, 1] .

首页