#P1251. 神秘大门
神秘大门
背景
WZland最近成立了一个OI应急小组,简称WZOI。WZOI挑选了WZland精英,他共同处理WZland中发生的重大事件……
问题描述
最近WZOI的CWQ大牛经过调查发现,在WZland的最南方——WZ Antarctica出现了奇怪的磁场反应。为了弄清楚这一现象,CWQ大牛亲自出马,来到了WZ Antarctica。 CWQ大牛发现WZ Antarctica出现了一道神秘的大门。人总有好奇心,CWQ大牛想打开这扇神秘大门,看门的后面究竟是什么东西,但用尽什么办法也不能打开这扇门。突然,门上出现了一些奇怪的字符。凭着敏锐的直觉,CWQ认为这些符号就是打开这扇门的关键,于是CWQ抓紧时间开始研究这些符号。
经过一些时间的研究,CWQ大牛发现这些符号其实是一串密码,只有破解了这个密码,才能打开那扇神秘大门。这个密码十分简单,他给出了两个很长的字符串A和B,你只需要判断B是否在A中出现过就可以了,当然如果B在A中出现,那么你还需要输出B的字符在A中依次出现的位置。
这里解释一下B在A中出现的概念,设A=S1S2…SN,B= T1T2…TM,如果存在一组数K:
K1<K2<…<KM,使得B=SK1SK2…SKM,那么就可以认为B在A出现过。比如说A=sdfesad,B=sfsad,那么B在A中出现过,因为B中的字符在A中依次出现的位置为1 3 5 6 7。这个解密过程实在太简单了,于是CWQ大牛就将这个任务交给了WZOI的你。由于CWQ大牛十分着急,他只给了你1s的时间。
输入格式
输入数据包含2行,分别包含一个字符串,第一行输入的是字符串A,第二行输入的是字符串B。
输出格式
第一行输出一个字符串“Yes”或“No”,如果B在A中出现,那么输出“Yes”,否则输出“No”。
如果你的第一行输出“Yes”,那么在第接下来若干行你需要输出一组数K,使得B=SK1SK2…SKM,每行一个数;否则第二行为空。如果存在多组数据满足条件,你需要输出字典序最大的一组。
样例输入输出
Sample #1door.in
sdfesad
sfsad
door.out
Yes
1
3
5
6
7
Sample #2door.in
abcdef
acdefg
door.out
No
数据规模
对于30%的数据,串A的长度不超过10^3,串B的长度不超过10^3;
对于50%的数据,串A的长度不超过10^4,串B的长度不超过10^4;
对于100%的数据,串A的长度不超过10^6,串B的长度不超过10^6;
字符串只会由’A’..’Z’,’a’..’z’,’0’..’9’组成。
提示
关于字典序: 比较两个数组S1[N]与S2[N]的字典序大小,可以找到S1[N]与S2[N]中第1个不相同数字S1[i]与S2[i](即有对于所有1≤k<i,都有S1[k] =S2[k],但S1[i]≠S2[i])。如果S1[i]<S2[i],那么说S1[N]字典序比S2[N]小,否则说S1[N]字典序比S2[N]大。
相关
在以下作业中: