CF1857B.Maximum Rounding
普及-
通过率:0%
时间限制:2.00s
内存限制:256MB
AC君温馨提醒
该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
Given a natural number x. You can perform the following operation:
- choose a positive integer k and round x to the k-th digit
Note that the positions are numbered from right to left, starting from zero. If the number has k digits, it is considered that the digit at the k-th position is equal to 0.
The rounding is done as follows:
-
if the digit at the (k−1)-th position is greater than or equal to 5, then the digit at the k-th position is increased by 1, otherwise the digit at the k-th position remains unchanged (mathematical rounding is used).
-
if before the operations the digit at the k-th position was 9, and it should be increased by 1, then we search for the least position k′ (k′>k), where the digit at the k′-th position is less than 9 and add 1 to the digit at the k′-th position. Then we assign k=k′.
-
after that, all digits which positions are less than k are replaced with zeros.
Your task is to make x as large as possible, if you can perform the operation as many times as you want.
For example, if x is equal to 3451, then if you choose consecutively:
- k=1, then after the operation x will become 3450
- k=2, then after the operation x will become 3500
- k=3, then after the operation x will become 4000
- k=4, then after the operation x will become 0
To maximize the answer, you need to choose k=2 first, and then k=3, then the number will become 4000.
给定一个自然数 x。你可以执行以下操作:
- 选择一个正整数 k,并将 x 四舍五入到第 k 位。
注意:位数编号从右向左,起始位置为 0。若该数仅有 k 位数字,则认为其第 k 位上的数字为 0。
四舍五入规则如下:
-
若第 (k−1) 位上的数字大于或等于 5,则将第 k 位上的数字加 1;否则第 k 位上的数字保持不变(采用数学四舍五入)。
-
若在操作前第 k 位上的数字为 9,且此时需将其加 1,则需寻找最小的位置 k′(满足 k′>k),使得第 k′ 位上的数字小于 9,然后将第 k′ 位上的数字加 1,并令 k=k′。
-
此后,所有位置编号小于 k 的数字均被替换为 0。
你的任务是:在可以任意多次执行该操作的前提下,使 x 尽可能大。
例如,若 x=3451,则依次选择:
- k=1,操作后 x 变为 3450
- k=2,操作后 x 变为 3500
- k=3,操作后 x 变为 4000
- k=4,操作后 x 变为 0
为使结果最大化,应首先选择 k=2,再选择 k=3,此时该数变为 4000。
输入格式
The first line contains a single integer t (1≤t≤104) — the number of test cases.
Each test case consists of positive integer x with a length of up to 2⋅105. It is guaranteed that there are no leading zeros in the integer.
It is guaranteed that the sum of the lengths of all integers x over all test cases does not exceed 2⋅105.
第一行包含一个整数 t(1≤t≤104),表示测试用例的数量。
每个测试用例包含一个正整数 x,其长度最多为 2⋅105。保证该整数不包含前导零。
保证所有测试用例中整数 x 的长度之和不超过 2⋅105。
输出格式
For each set of input data, output the maximum possible value of x after the operations. The number should not have leading zeros in its representation.
对于每组输入数据,输出执行操作后 x 的最大可能值。该数字在其表示中不能有前导零。
输入输出样例
输入#1
10 1 5 99 913 1980 20444 20445 60947 419860 40862016542130810467
输出#1
1 10 100 1000 2000 20444 21000 100000 420000 41000000000000000000
说明/提示
In the first sample, it is better not to perform any operations.
In the second sample, you can perform one operation and obtain 10.
In the third sample, you can choose k=1 or k=2. In both cases the answer will be 100.
在第一个样例中,不执行任何操作更优。
在第二个样例中,你可以执行一次操作,得到 10。
在第三个样例中,你可以选择 k=1 或 k=2。两种情况下答案均为 100。
输入解题思路,AI测评打分。不知道怎么写?