C. 最大化四舍五入(round)

    传统题 文件IO:round 1000ms 256MiB

最大化四舍五入(round)

该比赛已结束,您无法在比赛模式下递交该题目。您可以点击“在题库中打开”以普通模式查看和递交本题。

读写要求

本题采用文件读写,请在提交代码时使用正确的文件读写方式,否则会导致 RE

输入:round.in

输出:round.out

题目描述

给定一个自然数 x x 。你可以执行如下操作:

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

注意,数位的位置从右往左编号,从 00 开始。如果这个数有 k k 位,则认为第 k k 位上的数字等于 00

四舍五入规则如下:

  • 如果第 (k1) (k-1) 位上的数字大于等于 55,那么第 k k 位上的数字增加 11;否则第 k k 位上的数字保持不变(使用数学意义上的四舍五入)。
  • 如果操作前第 k k 位上的数字是 99,并且它需要增加 11,那么我们寻找最小的位置 k k' k>k k'>k ),满足第 k k' 位上的数字小于 99,然后将第 k k' 位上的数字增加 11。然后令 k=kk = k'
  • 之后,所有位置小于 k k 的数字都被替换为 00 (不论前面是舍还是入)。

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

例如,如果 x x 等于 34513451,那么如果你依次选择:

  • k=1 k=1 ,操作后 x x 会变成 34503450
  • k=2 k=2 ,操作后 x x 会变成 35003500
  • k=3 k=3 ,操作后 x x 会变成 40004000
  • k=4 k=4 ,操作后 x x 会变成 00

为了使答案最大,你需要先选择 k=2 k=2 ,再选择 k=3 k=3 ,这样这个数会变成 40004000

输入格式

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

每个测试用例包含一个正整数 x x ,其长度不超过 2105 2 \cdot 10^5 。保证该整数没有前导零。

保证所有测试用例中整数 x x 的长度之和不超过 2105 2 \cdot 10^5

输出格式

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

输入输出样例

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

说明/提示

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

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

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

周赛#1030(div3)

未参加
状态
已结束
规则
IOI
题目
5
开始于
2026-6-13 19:00
结束于
2026-6-13 20:00
持续时间
1 小时
主持人
参赛人数
18