#P8982. 「DROI」Round 1 下坠

「DROI」Round 1 下坠

背景

下坠是有终点的吗?

题目描述

ff 是定义在 N+\mathbb{N^+} 上的函数。

我们令 aia_i 表示 xx 从低到高第 ii 位,那么 f(x)=∏i=1len(ai+1)f(x)= \prod_{i=1}^{len} (a_i+1)(lenlen 表示 xx 的位数)。

如果对于一个数 xx,存在 yy 使得 f(y)=xf(y)=x,那我们称 xx 是下坠数。

现在有 QQ 次询问,每次询问会给出一个正整数 kk。

令 xx 表示所有下坠数中第 kk 小的下坠数,那么请你找到一个最小的 yy,使得 f(y)=xf(y)=x。若不存在一个 y∈[1,1018]y \in [1,10^{18}] 满足条件,则输出 −1-1。

输入格式

第一行输入一个整数 QQ,表示询问次数。

接下输入一行 QQ 个数,第 ii 个数表示第 ii 次询问的 kk。

输出格式

输出一行 QQ 个数,第 ii 个数表示第 ii 次询问你找到的答案。

3
1 2 3
1 2 3
3
9 14 46666666
9 18 -1

提示

样例解释 #1

注意到 ff 的定义域是 N+\mathbb{N^+},所以 11 不是下坠数。则前三个下坠数分别为 2,3,42,3,4,对应的 yy 值则为 1,2,31,2,3。


样例解释 #2

第 99 和 1414 个下坠数分别为 1010 和 1818,其对应的 yy 值则为 99 和 1818。可以证明,第 4666666646666666 个下坠数对应的 y>1018y > 10^{18}。


数据范围

对于 100%100\% 的数据满足:Q≤105Q \leq 10^5,k≤5×107k \leq 5 \times 10^7。

其中对于 10%10\% 的数据满足:k≤100k \leq 100。

对于 30%30\% 的数据满足:k≤5×103k \leq 5 \times 10^3。

对于另外 20%20\% 的数据满足:对于所有被询问到的下坠数 xx,都有 ∣x−y∣≤100\vert x-y \vert \leq 100 或者 y>1018y > 10^{18}。

请注意不同寻常的时间限制。