#P4535. [CTSC2004] 数字搜索

[CTSC2004] 数字搜索

Description

你的程序需要根据给定的输入,给出符合题意的输出:

  • 输入包括一个满足如上定义的正则表达式,以及一长串文本;

  • 你需要根据输入的正则表达式及文本,找出文本中所有可匹配的位置;

  • 你给出的输出需要包括所有可匹配的位置。

Input Format

输入文件regular.in的第一行描述一个正则表达式,第二行为需要处理的文本:

  • 第一行的正则表达式包括由一个空格分开的两个部分:

  • 一个非负整数n(1≤ n≤ 10),表示我们所要考虑的数字集(即在正则表达式和文本中所出现的数字)是0, 1, …, n–1。

  • 接下来是一个正则表达式,它由{‘(‘, ’)’, ’+’, ’*’}中的4个符号和{0, …, n–1}中的数字构成,表达式的长度不超过500个字符。

  • 第二行为一个由0到n-1之间数字构成的字符串,为需要处理的文本。该文本长度不超过10,000,000个字符。

Output Format

输出文件只有一行,包括一些由空格分开的整数,按从小到大的顺序依次输出所需处理的文本中每一个可匹配的位置。

4 12333+33
312331
5

Hint

**说明:**对于输入示例,需要处理的文本是’312331’,其中只有第5个字符所在的位置(下划线所在处)是可匹配的。这时正则表达式’12333+33'中的’33’可以与之匹配。

**提示:**在本次的测试数据中,有6个测试点中的正则表达式不出现’*’,其中有3个测试点,正则表达式只由数字和’+’构成。有一个测试点的待处理文本不超过1,000,000个字符。