#P13604. [NWRRC 2022] Greatest Common Divisor

[NWRRC 2022] Greatest Common Divisor

Description

Gennady 是一名有志成为程序员的人。他目前正在学习用于计算两个正整数最大公约数的欧几里得算法。

不幸的是,Gennady 有时会混淆整数除法运算符(记作 div\tt{div})和取余运算符(记作 mod\tt{mod})。例如,3737 div\tt{div} 10=310 = 3,而 3737 mod\tt{mod} 10=710 = 7

以下是 Gennady 最新实现的欧几里得算法:

  • 输入:两个正整数 xxyy
  • y>0y > 0 时:
    • x=xx = x div\tt{div} yy,然后交换 xxyy
  • 输出 xx

如你所见,如果 Gennady 用的是 mod\tt{mod} 运算符而不是 div\tt{div} 运算符,他的实现就是正确的:上述算法能够成功求出 xxyy 的最大公约数。然而,事实证明,即使有这个严重的 bug,这个算法有时也能给出正确的结果!

现在给定一个整数 nn。Gennady 想要找出所有满足 1x,yn1 \le x, y \le n,该算法能够终止并输出正确结果的输入对 (x,y)(x, y)。设这些输入对按字典序排列为 (x1,y1),(x2,y2),,(xk,yk)(x_1, y_1), (x_2, y_2), \ldots, (x_k, y_k)(对于所有 1i<k1 \le i < k,要么 xi<xi+1x_i < x_{i+1},要么 xi=xi+1x_i = x_{i+1}yi<yi+1y_i < y_{i+1})。

你还会得到 qq 个询问。第 ii 个询问是一个正整数 pip_i,你需要输出 xpix_{p_i}ypiy_{p_i},或者报告 pi>kp_i > k

Input Format

第一行包含两个整数 nnqq,分别表示输入值的上界和询问的数量(1n,q21051 \le n, q \le 2 \cdot 10^5)。

接下来的 qq 行,每行包含一个整数 pip_i1pin21 \le p_i \le n^2)。

Output Format

对于每个询问,输出两个整数。它们要么是 xpix_{p_i}ypiy_{p_i},表示按字典序排列的第 pip_i 个满足条件的输入对,要么输出 1 1-1\ -1,如果这样的输入对数量少于 pip_i

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

Hint

由 ChatGPT 4.1 翻译