跳转至

数据恢复

  • 参考时间限制: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% 无额外条件