数据恢复¶
- 参考时间限制:0.5 秒(评测环境与性能)。
- 实际时限:在目标环境实测标准程序最慢测试文件的中位时间,乘以 2,再按 0.5 秒向上取整。
- 内存限制:128 MB。
背景故事¶
电脑店的一位客户把一个整数的阶乘保存在硬盘里。病毒损坏了文件的前缀,但末尾的一段数字仍然正确。技术员知道原来的整数,也知道保留下来的数字,希望恢复整个阶乘。
形式化问题描述¶
给定非负整数 \(n,k\) ,以及十进制字符串 \(s\) ,其中 \(s\) 恰好由 \(n!\) 的最后 \(k\) 位组成。
设 \(D\) 为 \(n!\) 的十进制位数。保证 \(0\le D-k\le15\) ,即至多缺失最前面的 \(15\) 位。输出 \(n!\) 的完整十进制表示。
约定 \(0!=1\) .字符串 \(s\) 可以包含前导零;当 \(k=0\) 时,它是空字符串。
输入格式¶
第一行两个整数 \(n,k\) .第二行是恰有 \(k\) 个数字的字符串 \(s\) ;当 \(k=0\) 时,第二行为空行。
输出格式¶
输出一行,为 \(n!\) 的完整十进制表示,不含前导零。
样例 1¶
输入¶
9 1
0
输出¶
362880
样例 2¶
输入¶
20 17
32902008176640000
输出¶
2432902008176640000
样例 3¶
输入¶
20 4
0000
输出¶
2432902008176640000
样例 4¶
输入¶
0 0
输出¶
1
样例解释¶
样例 1 中,\(9!=362880\) ,保留的最后一位是 \(0\) .
样例 2 保留了 \(20!\) 的最后 \(17\) 位,缺失的前缀是 24 .样例 3 的后缀有四个零,它们不能在读取时丢失。样例 4 中,后缀为空,仍应输出 \(0!=1\) .
数据范围与保证¶
对 100% 的数据:\(0\le n\le500000\) ,\(\max(0,D-15)\le k\le D\) ,其中 \(D\) 是 \(n!\) 的十进制位数。输入后缀正确,长度恰好为 \(k\) .
| 分值比例 | 额外条件 |
|---|---|
| 100% | 无额外条件 |