GP28431. 转屏校验
题目描述
题目描述
档案终端使用一种特殊的数码字体。以下数字旋转 度后,仍可辨认为表中对应的数字:
| 原数字 | |||||||
|---|---|---|---|---|---|---|---|
| 旋转后 |
原编号恰好有 位,每一位都必须是表中的数字,且第一位不能是 。将显示原编号的整块屏幕旋转 度后,数字的位置顺序也会反转。例如,原编号 126 旋转后读作 921。
终端将原编号与旋转后读数分别按十进制整数解释,并把两者的和作为校验值。旋转后读数保留 个数位,可以以 开头;其前导零不影响求和。校验值写成恰好 位,不足时在左侧补 。
现在,原编号的部分数位已经模糊,用字符 ? 表示。给定原编号的模板和校验值,请计算有多少个原编号既符合模板,又能产生该校验值。答案对 取模。
输入格式
从文件 rotcheck.in 中读取数据。
第一行输入一个整数 。
第二行输入一个长度为 的字符串 ,表示原编号的模板。? 可以替换为任意一个可旋转数字,其他字符表示该位置的数字已经确定。
第三行输入一个长度为 的字符串 ,表示校验值。
输出格式
输出到文件 rotcheck.out 中。
输出一个整数,表示符合条件的原编号数量对 取模后的结果。
2
??
033
2
3
6?9
1368
2
样例解释
样例 #1 中,两个符合条件的原编号是 12 和 21。它们旋转后分别读作 21 和 12,校验值都是 033。
样例 #2 中,两个符合条件的原编号是 669 和 699。它们旋转后分别读作 699 和 669,校验值都是 1368。
数据规模与约定
对于所有测试数据,保证:
- ;
- 的长度为 ,且仅包含字符
?、0、1、2、5、6、8、9; - 的长度为 ,且仅包含数字字符,第一位为
0或1。
记 为 中字符 ? 的数量。各子任务采用捆绑计分:只有通过该子任务的全部测试数据,才能获得该子任务的分值。
| 子任务编号 | 分值 | 额外约束 |
|---|---|---|
对于所有满足 的 , 与 中至多一个为 ? |
||
| 无额外约束 |