小 A 和同桌最近迷上了一种“竖读暗号”游戏:把一段由小写英文字母组成的文字 S 抄写在方格纸上,从头开始每 w 个字符一行(最后一行可能不满 w 个);然后选定一列 c,从上到下竖着读。
对于长度不少于 c 的每一行,取出该行的第 c 个字符,按行的顺序连接起来,得到一个新字符串。如果它恰好等于约定的暗号 T,游戏就成功了。
为了保证真的是“竖读”,要求 w 严格小于 |S|(即至少要写两行)。这里 |S| 表示字符串 S 的长度。
现在给定 S 和 T,请判断是否存在满足 1 \leq c \leq w < |S| 的整数对 c 和 w,使得按上述方式竖读得到的字符串恰好等于 T。
一行两个字符串,分别为 S 和 T,用空格隔开。
如果存在满足条件的整数对 c 和 w,输出 Yes;否则输出 No。
sunflower ule
Yes
notebook k
No
secretcode sto
No
取 w=3,把 S 每 3 个字符抄成一行:
sun
flo
wer
再取 c=2,竖读第 2 列得到 ule,与 T 相同,因此输出 Yes。
字符串 notebook 中只有最后一个字符是 k。由于要求 w < |S|,最后一个字符一定会出现在第 2 行或更靠后的行中;如果竖读时取到了这个 k,同一列中它上方的字符也一定会被一起读出,因此不可能只得到字符串 k。所以输出 No。
对于 100\% 的数据,满足: