Carry The Bit
题号:NC311863
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
64bit IO Format: %lld

题目描述

\hspace{15pt}小苯有一个正整数 n,你必须对 n 进行以下操作恰好一次:
\hspace{23pt}\bullet\选择 n 的任意一个数位,将该数位进行四舍五入
\hspace{15pt}你的任务就是求出进行恰好一次操作后,能得到的最大的结果是多少。

【名词解释】
\hspace{15pt}四舍五入:具体来说,设你选择的是从右往左第 k 位(k \ge 1,个位是第 1 位),如果该位数字 \geq 5,则将该位及其右侧所有数位都变为 0,并将前一位加 1(必要时继续向更高位进位);若不存在前一位(即选择的是最高位),则在数的最左端新增一个 1;如果该位数字 \leq 4,则直接将该位及其右侧所有数位都变为 0
\hspace{15pt}例如,对于 n = 3749
\hspace{23pt}- 若选择十位(数字 4\leq 4),则得到 3700
\hspace{23pt}- 若选择个位(数字 9\geq 5),则得到 3750(进位到十位)。

输入描述:

\hspace{15pt}第一行一个整数 T\ (1 \leq T \leq 10^4),表示测试数据组数。对于每组数据:
\hspace{15pt}一行一个正整数 n\ (10 \leq n \lt 10^{200000}),保证 n 不含前导零。
\hspace{15pt}除此之外,保证单个测试文件的 n 的数位长度不超过 2 \times 10^5

输出描述:

\hspace{15pt}对于每组数据,输出一行一个整数,表示进行一次操作后能得到的最大结果。
示例1

输入

复制
3
3749
105
999

输出

复制
4000
110
1000

说明

\hspace{15pt}第一组数据:如上所述,选择百位四舍五入得到 4000
\hspace{15pt}第二组数据:选择个位,进一位得到 110
\hspace{15pt}第三组数据:选择个位(数字 9)四舍五入会向前不断进位,得到 1000