#4328. 破损的四合五人(Broken Rounding)

破损的四合五人(Broken Rounding)

题目描述

给定一个非负整数 XX,按照i=0,1,,Ki=0,1,\dots,K 的顺序执行以下操作,求操作全部完成后 XX 的值。
XX10i10^i位及以下四舍五入。
更正式地说,将 XX 替换为 YY,其中 YY 是满足YX|Y-X| 最小的 10i10^i 的倍数中的最大值。
举几个例子:
273273 四舍五入到 10210^2 位得到 300300
999999 四舍五入到 10310^3 位得到 10001000
100100 四舍五入到 101010^{10}位得到 00
10151015 四舍五入到 10110^1 位得到 10201020

输入格式

输入从标准输入按以下格式给出:
XKX K

输出格式

将答案作为整数打印出来。

样例

2048 2
2100
1 15
0
999 3
1000
314159265358979 12
314000000000000

样例解释

【样例一说明】
经过操作,XX 的变化为 2048205021002048 \rightarrow 2050 \rightarrow 2100。

【样例四说明】
XX 可能无法用 3232 位整数类型表示。

数据范围

  • XXKK 都是整数
  • 0X<10150 \le X < 10^{15}
  • 1K151 \le K \le 15

来源

  • AtCoder ABC273B