CF1560C.Infinity Table

传统题 时间 2000 ms 内存 256 MiB 3 尝试 1 已通过 1 标签

Infinity Table

题目描述

Polycarp 发现了一张拥有无限多行和列的表格。行号从上到下依次为 11 开始编号,列号从左到右依次为 11 开始编号。

最初,这张表格是空的,Polycarp 想要填充它。他按照如下方式依次将整数 11 开始填入表格。

上图展示了数字 111010 的填充方式,箭头表示填充的顺序。首先,Polycarp 在表格的左上角(第一行第一列)填入数字 11。然后,他按照如下算法依次填入从 22 开始的所有正整数。

首先,Polycarp 选择第一行中最左侧尚未填充的单元格并填入数字。接着,只要刚刚填充的单元格的左侧邻格已经被填充,他就向下移动并填充下一个单元格。如此向下,直到当前填充的单元格左侧有一个未填充的邻格为止(如上图中的竖直箭头所示)。

之后,他从右向左依次填充单元格,直到到达第一列为止(如上图中的水平箭头所示)。然后,Polycarp 再次选择第一行中最左侧尚未填充的单元格,继续上述过程。

Polycarp 的朋友有一个喜欢的数字 kk。他想知道数字 kk 会被填入哪一个单元格。请你帮他找出该单元格的行号和列号,即该数字所在的行和列的编号。

输入格式

第一行包含一个整数 tt1t1001 \le t \le 100),表示测试用例的数量。接下来有 tt 行,每行一个整数 kk1k1091 \le k \le 10^9),表示需要查询的位置。

输出格式

对于每个测试用例,输出一行两个整数 rrccr,c1r, c \ge 1),表示数字 kk 所在单元格的行号和列号。两个整数之间用空格隔开。

说明/提示

由 ChatGPT 4.1 翻译

样例

7
11
14
5
4
1
2
1000000000
2 4
4 3
1 3
2 1
1 1
1 2
31623 14130

在线编程 IDE

建议全屏模式获得最佳体验