#S1D11. Day11_绝望的PC

Day11_绝望的PC

题目背景

不知道大家是否还记得前天的题目 Day9_我还是综测糕手。那道题里每条测试数据都包含了一个人名,并且不会重复。实际上最开始编写那道题的题面时,PC 并没有考虑过测试数据的问题。等到题面写完了,开始捏数据,PC 才绝望地意识到:

“我他宝贝的要上哪找 10410^4 个不重复的人名啊!!!”

在扶额沉思十分钟后,PC 最终决定动用中华文化最古老的秘技:活字乱刷术。简单来说,就是找一些耳熟能详的名字,把每个字都拎出来组成一个列表,然后通过排列组合组成新的 22 字、33 字名字。譬如从 盖可爱莉希雅 中拆出来 ['盖', '可', '爱', '莉', '希', '雅'],然后随机抽取 22 个字组合成新的名字,例如 可莉;再随机抽取 33 个字组合成新的名字,例如 盖爱雅

所以 PC 现在的问题就变成了要找 kk 个不重复的字出来。找是能找,但这个 kk 到底是多少呢?很显然组出来的名字数量会随 kk 的增大而高速上升,如果一昧地加新的字,很可能最后会多出来很多用不上的名字。

还好天无绝人之路, PC 通过这学期学习的 《概率论与数理统计》,成功找到了解决问题的方法,并经过计算得出他需要 2323 个不同的字,能组出来 1113210411132 \geq 10^4 个不同的名字。那么,如果题目需要的不是 10410^4 个名字,而是 xx 个呢?

题目描述

PC 总结出了以下规律:如果他有 kk 个不重复的字符,他的程序能排列出 yy 个不同的名字,这里 y=k(k1)2y=k(k-1)^2。试着根据任意的正整数 xx 求出最小的 kk,满足 k(k1)2xk(k-1)^2 \geq x

值得注意的是,由于需要组合出 33 个字的名字,所以无论 xx 的值为多少,kk 最小为 33

输入格式

输入共 n+1n + 1 行。

1111 个整数 nn,代表有 nn 次询问。

接下来 nn 行每行 11 个整数 xix_i,代表 PC 需要 xix_i 个名字。

输出格式

输出 nn 行,每行 11 个数字 kik_i,代表最少需要 kik_i 个不同的字可以组合出 yi=ki(ki1)2y_i=k_i(k_i-1)^2 个名字,满足 yixiy_i \geq x_i

值得注意的是,由于需要组合出 33 个字的名字,所以无论 xx 的值为多少,kk 最小为 33

3
10000
100000
1
23
48
3

提示

样例中,要计算 22 个不同的 xx。其中:

  1. x=10,000x=10,000 时,有 k=23k=23,满足 y=k(k1)2=11,13210,000y=k(k-1)^2=11,132 \geq 10,000,此时 kk 最小。
  2. x=100,000x=100,000 时,有 k=48k=48,满足 y=k(k1)2=106,032100,000y=k(k-1)^2=106,032 \geq 100,000,此时 kk 最小。

值得注意的是,由于需要组合出 33 个字的名字,所以无论 xx 的值为多少,kk 最小为 33。且为了防止大家出现奇怪的问题,可以悄悄告诉大家 kk 最大只需要取到 106+110^6+1 即可满足本题的全部要求。

数据规模与约定

对于全部的测试点,保证 1n1041 \leq n \leq 10^41xi10181 \leq x_i \leq 10^{18}3k106+13 \leq k \leq 10^6+1