以下任务是第 16 届波兰信息学奥林匹克竞赛第三阶段 “单词”(Words)任务的一个难度明显更高的版本。它并未在竞赛本身中使用,但对于那些已经解决了 “单词” 任务且还想挑战更多难题的人来说,算是一个拓展内容。(:-))
设是一个作用于由数字 0 和 1 组成的字符串的函数。
函数对字符串进行变换,具体方式是(独立且同时地)将每个数字 0 替换为 1,将每个数字 1 替换为字符串 “10”。
例如,(也就是说,函数给空字符串也赋予一个空字符串)。
请注意,是一个单射函数,也就是一一对应函数。
我们用表示函数自身复合次得到的函数。
特别地,就是恒等函数。
我们对形如(其中)的字符串感兴趣。这个序列开头的几个字符串如下:
,,,,,。
如果字符串作为一个连续的(也就是一整块的)子序列出现在字符串中,我们就称字符串是字符串的子串。
给定一个整数序列。
你的任务是检查对于某个,形如的字符串是否是的子串,如果是,你应该找出满足条件的最小的。