AT_abc273_b [ABC273B] Broken Rounding
题目描述
对于一个非负整数 $X$,依次对 $i=0,1,\dots,K-1$ 进行如下操作,请求出所有操作结束后 $X$ 的值。
- 将 $X$ 的 $10^i$ 位及以下进行四舍五入。
- 更严格地说,将 $X$ 替换为“在所有 $10^{i+1}$ 的倍数中与 $X$ 差的绝对值 $|Y-X|$ 最小且最大的 $Y$”。
- 具体例子如下:
- 将 $273$ 的 $10^1$ 位及以下四舍五入后得到 $300$。
- 将 $999$ 的 $10^2$ 位及以下四舍五入后得到 $1000$。
- 将 $100$ 的 $10^9$ 位及以下四舍五入后得到 $0$。
- 将 $1015$ 的 $10^0$ 位及以下四舍五入后得到 $1020$。
输入格式
输入以如下格式从标准输入读入。
> $X$ $K$
输出格式
请输出最终的 $X$,作为一个整数。
说明/提示
### 限制条件
- $X,K$ 均为整数。
- $0 \le X < 10^{15}$。
- $1 \le K \le 15$。
### 样例解释 1
在操作过程中,$X$ 依次变为 $2048 \rightarrow 2050 \rightarrow 2100$。
### 样例解释 4
$X$ 可能无法用 $32$ 位整数类型存储。
由 ChatGPT 4.1 翻译