CF1857B.Maximum Rounding

传统题 时间 2000 ms 内存 256 MiB 5 尝试 1 已通过 1 标签

Maximum Rounding

题目描述

给定一个自然数 xx,你可以进行如下操作:

  • 选择一个正整数 kk,并将 xx 四舍五入到第 kk 位。

注意,数位从右到左编号,从 00 开始。如果该数有 kk 位,则认为第 kk 位上的数字为 00

四舍五入的规则如下:

  • 如果第 (k1)(k-1) 位上的数字大于等于 55,则第 kk 位上的数字加 11,否则第 kk 位上的数字不变(即采用数学四舍五入)。
  • 如果操作前第 kk 位上的数字为 99,且需要加 11,则向更高位查找最小的 kk'k>kk'>k),使得第 kk' 位上的数字小于 99,并将第 kk' 位上的数字加 11。然后令 k=kk=k'
  • 之后,将所有小于 kk 的位上的数字都变为 00

你的任务是,在可以进行任意次操作的情况下,使 xx 尽可能大。

例如,若 x=3451x=3451,则依次选择:

  • k=1k=1,操作后 xx 变为 34503450
  • k=2k=2,操作后 xx 变为 35003500
  • k=3k=3,操作后 xx 变为 40004000
  • k=4k=4,操作后 xx 变为 00

为了最大化答案,应先选择 k=2k=2,再选择 k=3k=3,此时数字变为 40004000

输入格式

第一行包含一个整数 tt1t1041\le t\le 10^4),表示测试用例的数量。

每个测试用例包含一个正整数 xx,长度不超过 21052 \cdot 10^5。保证整数中没有前导零。

保证所有测试用例中所有 xx 的位数之和不超过 21052 \cdot 10^5

输出格式

对于每组输入数据,输出经过操作后 xx 的最大可能值。输出的数字表示中不应有前导零。

说明/提示

在第一个样例中,最好不进行任何操作。

在第二个样例中,可以进行一次操作得到 1010

在第三个样例中,可以选择 k=1k=1k=2k=2,两种情况下答案都是 100100

由 ChatGPT 4.1 翻译

样例

10
1
5
99
913
1980
20444
20445
60947
419860
40862016542130810467
1
10
100
1000
2000
20444
21000
100000
420000
41000000000000000000

在线编程 IDE

建议全屏模式获得最佳体验