atcoder#ABC273B. [ABC273B] Broken Rounding

[ABC273B] Broken Rounding

题目描述

非負整数 X X に対し、 i=0,1,,K1 i=0,1,\dots,K-1 の順に次の操作を行ったとき、操作を全て終えた時点での X X を求めてください。

  • X X 10i 10^i の位以下を四捨五入する。
    • 厳密には、 X X を「 YX |Y-X| が最小となる 10i+1 10^{i+1} の倍数のうち最大のもの」である Y Y に置き換える。
    • 具体例を挙げる。
      • 273 273 101 10^1 の位以下を四捨五入すれば 300 300 となる。
      • 999 999 102 10^2 の位以下を四捨五入すれば 1000 1000 となる。
      • 100 100 109 10^9 の位以下を四捨五入すれば 0 0 となる。
      • 1015 1015 100 10^0 の位以下を四捨五入すれば 1020 1020 となる。

输入格式

入力は以下の形式で標準入力から与えられる。

X X K K

输出格式

答えを整数として出力せよ。

题目大意

已知一个数字 XX,依次进行 KK 次操作。

每次对数字 XX10i10^i 进行做 四舍五入 操作。

例: 27327310210^2 做四舍五入为 30030027327310110^1 做四舍五入为 270270

请你求出,KK 次操作后,数字 XX 最终变为多少。

其中

0X1015 0 \leq X \leq 10^{15}

1K15 1 \leq K \leq 15

1iK 1 \leq i \leq K

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

提示

制約

  • X,K X,K は整数
  • 0  X < 1015 0\ \le\ X\ <\ 10^{15}
  • 1  K  15 1\ \le\ K\ \le\ 15

Sample Explanation 1

操作の過程で、 X X 2048  2050  2100 2048\ \rightarrow\ 2050\ \rightarrow\ 2100 と変化します。

Sample Explanation 4

X X 32 32 bit 整数型に収まらない可能性があります。