P13809 [CERC 2022] Denormalization
题目描述
Brodnik 博士准备了一个包含 $N$ 个整数的列表 $A = [a_1, a_2, \ldots, a_N]$。没有人确切知道这些数字代表什么,但众所周知:
- 对于所有 $1 \leq i \leq N$,都有 $1 \leq a_i \leq 10\,000$;
- 这些数的最大公约数为 $1$。
Hočevar 博士决定帮同事一个忙,将该列表归一化,因为他认为这代表 $n$ 维实向量空间中的一个向量。具体来说,他计算了
$$d = \sqrt{\sum_{i=1}^{N} a_i^2} = \sqrt{a_1^2 + a_2^2 + \cdots + a_N^2}$$
并将 Brodnik 博士的列表替换为 $[a_1/d, a_2/d, \ldots, a_N/d]$。归一化后的每个数都被保留到小数点后 12 位用于存储。我们将存储的归一化列表记为 $X = [x_1, x_2, \ldots, x_N]$。过了一段时间后,他意识到这是个错误,现在希望恢复原始列表 $A$。当然,原始数据没有备份。由于 Hočevar 博士现在正忙于更重要的任务,非常希望你能帮忙。
由于四舍五入导致部分数据丢失,他只需要你构造出任意一个列表 $R = [r_1, r_2, \ldots, r_N]$,使得归一化后与 $X$ 中对应元素的差值不超过 $10^{-6}$ 即可。
输入格式
输入的第一行包含一个整数 $N$,即列表 $X$ 的长度。接下来的 $N$ 行中,第 $i$ 行包含一个浮点数 $x_i$,精确到小数点后 12 位。保证输入是有效的,即确实是按照题目描述的方法由满足条件的整数列表得到的。
输出格式
输出应包含 $N$ 行,依次输出重构得到的整数 $r_1, r_2, \ldots, r_N$。你可以输出任意一个满足要求的解。
说明/提示
### 输入范围
- $2 \leq N \leq 10\,000$
- 对于所有 $1 \leq i \leq N$,都有 $0 < x_i < 1$
### 输出范围
- 对于所有 $1 \leq i \leq N$,都有 $1 \leq r_i \leq 10\,000$
- $\gcd(r_1, \ldots, r_N) = 1$
由 ChatGPT 4.1 翻译