atcoder#ABC273B. [ABC273B] Broken Rounding

[ABC273B] Broken Rounding

配点 : 200200

問題文

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

  • XX10i10^i の位以下を四捨五入する。- 厳密には、 XX を「 YX|Y-X| が最小となる 10i+110^{i+1} の倍数のうち最大のもの」である YY に置き換える。
    • 具体例を挙げる。- 27327310110^1 の位以下を四捨五入すれば 300300 となる。
    • 99999910210^2 の位以下を四捨五入すれば 10001000 となる。
    • 10010010910^9 の位以下を四捨五入すれば 00 となる。
    • 1015101510010^0 の位以下を四捨五入すれば 10201020 となる。
  • 厳密には、 XX を「 YX|Y-X| が最小となる 10i+110^{i+1} の倍数のうち最大のもの」である YY に置き換える。
  • 具体例を挙げる。
  • 27327310110^1 の位以下を四捨五入すれば 300300 となる。
  • 99999910210^2 の位以下を四捨五入すれば 10001000 となる。
  • 10010010910^9 の位以下を四捨五入すれば 00 となる。
  • 1015101510010^0 の位以下を四捨五入すれば 10201020 となる。

制約

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

入力

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

XX KK

出力

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

2048 2
2100

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

1 15
0
999 3
1000
314159265358979 12
314000000000000

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