#P6380. 『MdOI R2』Mayuri

『MdOI R2』Mayuri

题目背景

「万由里……怎么会?为什么你要……」

『我是灵力的结晶体,实施了封印,我当然会消失,不是吗?』

「封印?但是你和我……」

『第一次见面不能封印吗?笨蛋,我可是从大家的灵力里出生的,怎么可能讨厌你?从一出生,我就爱着你。』

「万由里……」

『虽然我竭力不让自己去想,但我一定是很羡慕大家……』

「等一下,万由里,不要消失……」

『但是我还是有一件能向大家炫耀的事,只有我和士道一样……』

「一样?」

『我已经不再是只为了消失而出生的生命。因为我遇见了你……已经足够了。』

「万由里……」

『谢谢你,士道。 』

题目描述

在离开这个世界前,万由里想要寻找属于她的 Lucky Number。

万由里会给出一个数 aa,以及一个长度为 bb 的 01 串 SS

简单的说,她的 Lucky Number 是满足以下条件的正整数 nn

  • nn 的位数为 bb 且不含前导 00

  • SS 的第 ii 位为 11,则 nn 的前 ii 位组成的数是 aa 的倍数,否则 nn 的前 ii 位组成的数不是 aa 的倍数。

对于一个数,前 ii 位组成的数是指这个数前 ii 个数码依次拼接形成的数。例如 31231131231133 位组成的数为 312312,前 55 位组成的数为 3123131231

现在,请你帮助万由里计算一下,她的 Lucky Number 是多少。

由于满足条件的数可能会有多个,你需要输出最小的一个。若不存在,则请输出 -1

输入格式

输入数据由两行构成。

第一行两个整数 a,ba,b,意义见题目描述。

第二行一个长度为 bb 的字符串 SS

输出格式

一行,满足条件的最小的数 nn。如果不存在满足条件的数,输出 -1

2 2
01
10
10 1 
1
-1
6 6
110100
601210

提示

【帮助与提示】

为方便选手测试代码,本题额外提供一组附加样例供选手使用。

样例输入 样例输出


【样例解释】

对于样例一,101022 位数,且 1010 的前 11 位组成的数 11 不是 22 的倍数,而前 22 位组成的数 101022 的倍数。由于 1010 已经是最小的两位数,故不存在比 1010 更小的满足条件的数。

对于样例二,我们需要构造一个 11 位数,满足这个 11 位数整除 1010。显然,这样的数不存在。


【数据范围】

本题采用捆绑测试

子任务编号 aa \leq bb\le 分值
Subtask 1 1010 1 1 2020
Subtask 2 1010 22
Subtask 3 6 6
Subtask 4 2 2 18 18
Subtask 5 10 10 105 10^5

对于全部数据,保证 2a102\le a\le 101b1051\le b\le 10^5SS 中只包含 01