「SvR-1」Hack Function!
题目背景
**Problem Number:** $\textit{63}$
小 C 坐在 J-PSC2077 的赛场(题目可于下方「**题目附件**」处下载)上,他早已年逾七旬,但作为 Z 队选手还是成功参赛。
题目描述
此时的 J-PSC 终于改成了 CF 赛制,小 C 迅速地 AK 了 Day 1,他发现 T2 function 比较好 Hack,题目的人话翻译如下:
> 对于一个数 $A$,定义函数 $f(A)$ 如下:
>
> 1. 先把 $A$ 变成 $k$ 进制数 $B$。
> 2. 将 $A$ 替换为 $B$ 各位之和。
> 3. 返回执行第 1 步,直到 $B$ 是一位数为止。
> 4. 记 $x$ 表示 $A$ 此时的值(十进制)。
> 此时 $f(A) = x$,$f(A)$ 称作 $A$ 关于 $k$ 的**位和函数**。
>
> 给定 $k, l, r, p$,求出 $\sum_{i = l}^r f(i^i) \bmod p$ 的值。
>
> **特别地,当 $\sum_{i = l}^r f(i^i) = p$ 时,输出 $\texttt{perfect}$。**
小 C 迅速秒了该题,当他翻看别人的代码时,发现他们用的全是暴力枚举。(因为机子跑得飞快)
好不容易看到一个人,他的代码里竟然没有一个 $\texttt{perfect}$!但由于数据过弱,竟然让他 pp 了。
小 C 突然脑子一热,忘记了怎么构造 Hack 数据,所以他通过 Luogu 6.0 求助于你。
小 C 会告诉你 $k, p$ 的值,你需要构造一组 $l, r$,**使答案输出为 $\texttt{perfect}$**。
**若无法构造,输出两个 $\texttt{-1}$。**
输入输出格式
输入格式
**本题有多组数据。**
第一行一个整数 $T$,表示数据组数。
接下来 $T$ 行,每行两个整数 $k,p$,含义如题所述。
输出格式
共 $T$ 行,对于每组数据,输出你构造的 $l,r$ 的值。
若有多组解,输出任意一组。
输入输出样例
输入样例 #1
3
10 13
10 3
2 1
输出样例 #1
2 3
-1 -1
1 1
说明
#### 样例 1 说明
- 对于数据 $1$,在 $k = 10$ 下,有 $f(2^2) = f(4) = 4$,$f(3^3) = f(27) = 9$,显然 $l = 2, r = 3$ 时原题应该输出 $\texttt{perfect}$。
- 对于数据 $2$,在 $k = 10$ 下,发现不可能满足要求。
- 对于数据 $3$,在 $k = 2$ 下,显然有 $f(1^1) = 1$,但该样例仅用于理解,根据数据规模与约定,我们保证 $k \geq 10$。
#### 数据规模与约定
$$
\newcommand{\arraystretch}{1.5}
\begin{array}{c|c|c|c}\hline\hline
\textbf{Subtask} & \textbf{说明} & \textbf{时限} & \textbf{分值} \\\hline
\textsf{1} & \text{无解} & 1\text{ s} & 3 \\\hline
\textsf{2} & \text{有解且\textbf{\textsf{存在}}一组解使 }1\le l\le r\le 10^5 & 1\text{ s} & 16 \\\hline
\textsf{3} & 1\le p\le 10^7 & 1\text{ s} & 34 \\\hline
\textsf{4} & \text{无特殊限制} & 1.5\text{ s} & 47 \\\hline\hline
\end{array}
$$
对于 $100\%$ 的数据,$10 \leq k \leq 10^3$,$1 \leq p \leq 10^8$,$1 \leq T \leq 10$。
保证时限在 std 用时的 $4$ 倍以上。
#### 评测说明
**本题开启 Special Judge 和捆绑测试。**
你需要保证 $l = r = -1$ 或 $1 \leq l \leq r \leq 10^{18}$ 且 $r - l \leq 10^{15}$,否则 SPJ 会将你的答案判为 $0$ 分。