#P13650. [NOISG 2016] UnluckyFloors

[NOISG 2016] UnluckyFloors

Description

当 Rar the Cat 前往台湾参加 IOI 2014 时,他住在一家酒店。在入住期间,他发现酒店大楼中有些楼层“消失”了。具体来说,他注意到包含 441313 作为子串的数字在楼层编号中被省略了。这是因为 441313 被认为是不吉利的数字,因此在编号时被有意跳过。

为简便起见,我们将这种编号方式称为“幸运编号方案”,因为它省略了不吉利的数字。下表展示了前 2020 层在幸运编号方案和常规编号方案下的对应关系。

:::align{center}

常规编号 幸运编号
11
22
33
44 55
55 66
66 77
77 88
88 99
99 1010
1010 1111
1111 1212
1212 1515
1313 1616
1414 1717
1515 1818
1616 1919
1717 2020
1818 2121
1919 2222
2020 2323

:::

然而,Rar the Cat 认为这种编号方式不够正规,他希望能够在幸运编号方案和常规编号方案之间进行楼层转换。例如,幸运编号方案下的第 66 层对应常规编号方案下的第 55 层,而幸运编号方案下的第 1515 层实际上是常规编号方案下的第 1212 层。因此,给定幸运编号方案下的某一楼层编号,Rar the Cat 希望你计算出它在常规编号方案下对应的楼层编号,反之亦然。

Input Format

你的程序需要从标准输入读取数据。

输入的第一行为一个整数 NN,表示 Rar the Cat 需要你帮他转换的楼层编号的数量。

接下来的 NN 行,每行包含两个整数,分别为 TiT_iXiX_i

如果 TiT_i11,你需要将 XiX_i 从幸运编号方案转换为常规编号方案,并将结果输出在一行中。如果 XiX_i 不是幸运编号方案下的有效楼层编号,则输出 1-1

如果 TiT_i22,你需要将 XiX_i 从常规编号方案转换为幸运编号方案,并将结果输出在一行中。

保证答案不会超过 6464 位有符号整数。更多信息请参考样例测试 4 和 5。

Output Format

你的程序只需输出到标准输出。

共输出 NN 行,每行一个整数。对于每个 ii,输出 TiT_iXiX_i 的答案。

保证答案不会超过 6464 位有符号整数。

8
1 1
1 4
1 15
1 25
2 1
2 4
2 15
2 25
1
-1
12
21
1
5
18
29
10
1 1
2 4
1 15
2 15
1 26
1 131
2 131
2 1337
1 100000
2 100000
1
5
12
18
22
-1
178
1995
56160
190508
2
1 9
1 999999999999
8
245967827040
5
1 987328938823
1 75732858587173
1 4444444444444444
1 1313131313131313
1 10000000000000000
241928778399
13999321852875
-1
-1
1534593233484559
5
2 987328938823
2 75732858587173
2 4444444444444444
2 1313131313131313
2 10000000000000000
5110985302888
500859079673722
30071998020860537
8755153350232701
76732116285952928

Hint

样例解释

样例测试 1 仅适用于子任务 1、2、3、5 和 6。

样例测试 2 仅适用于子任务 2、3 和 6。

样例测试 3 仅适用于子任务 4、5 和 6。

样例测试 4 仅适用于子任务 5 和 6。

样例测试 5 仅适用于子任务 6。

子任务

每个测试点的最大运行时间为 2.52.5 秒。你的程序将在满足以下限制的输入实例集上进行测试:

子任务 分值 NN TiT_i XiX_i
1 5 0<N500 < N \leq 50 Ti=1T_i = 122 0<Xi250 < X_i \leq 25
2 12 0<Xi1000000 < X_i \leq 100000
3 18 0<N1000000 < N \leq 100000
4 11 Ti=1T_i = 1 Xi=10K1X_i = 10^K - 1,其中 1K161 \leq K \leq 16
5 37 0<Xi10160 < X_i \leq 10^{16}
6 17 Ti=1T_i = 122

由 ChatGPT 4.1 翻译