markdown
E. 检查转录
每个测试点的时限:3 秒
每个测试点的内存限制:256 MB
输入:标准输入
输出:标准输出
阿尔卡迪的一位朋友在一台巨大的射电望远镜工作。几十年前,望远镜向一个遥远的星系发送了一个信号。最近,他们收到了一个回复,他们认为这是来自外星人的回应!科学家们现在想检查这个回复信号是否与原始信号相似。
原始信号 s 是一个由 0 和 1 组成的序列(众所周知,二进制代码是全宇宙通用的语言)。然而,收到的信号 t 看起来不像 s 那样简单,但科学家们并没有放弃!他们将 t 表示为一个由英文字母组成的序列,并认为 t 与 s 相似,如果可以将 s 中的所有 0 替换为某个字符串 r0,并将 s 中的所有 1 替换为另一个字符串 r1,从而得到 t。字符串 r0 和 r1 必须不同且非空。
请帮助阿尔卡迪的朋友,找出有多少种可能的替换方式(即有多少对字符串 r0 和 r1)可以将 s 转换为 t。
输入
第一行包含一个由 0 和 1 组成的字符串 s(1≤∣s∣≤105)——原始信号。
第二行包含一个仅由小写英文字母组成的字符串 t(1≤∣t∣≤106)——收到的信号。
数据保证字符串 s 中至少包含一个 0 和一个 1。
输出
输出一个整数——能够将 s 转换为 t 的字符串对 (r0,r1) 的数量。
如果不存在这样的对,则输出 0。
示例
输入示例
01
aaaaaa
输出示例
4
输入示例
001
kokokokotlin
输出示例
2
注释
在第一个示例中,可能的 (r0,r1) 对如下:
- r0=“a”,r1=“aaaaa”
- r0=“aa”,r1=“aaaa”
- r0=“aaaa”,r1=“aa”
- r0=“aaaaa”,r1=“a”
对 r0=“aaa”,r1=“aaa” 是不允许的,因为 r0 和 r1 必须不同。
在第二个示例中,可能的对如下:
- r0=“ko”,r1=“kokotlin”
- r0=“koko”,r1=“tlin”