Problem1043--字符串最大跨距

1043: 字符串最大跨距

[Creator : ]
Time Limit : 1.000 sec  Memory Limit : 256 MiB

Description

有三个字符串 $S,S1,S2$,其中,$S$ 长度不超过 $300$,$S1$ 和 $S2$ 的长度不超过 $10$。
想检测 $S1$ 和 $S2$ 是否同时在 $S$ 中出现,且 $S1$ 位于 $S2$ 的左边,并在 $S$ 中互不交叉(即,$S1$ 的右边界点在 $S2$ 的左边界点的左侧)。计算满足上述条件的最大跨距(即,最大间隔距离:最右边的 $S2$ 的起始点与最左边的 $S1$ 的终止点之间的字符数目)。如果没有满足条件的 $S1$,$S2$ 存在,则输出 $-1$。
例如,$S =abcd123ab888efghij45ef67kl,\ S1=ab,\ S2=ef$,其中,$S1$ 在 $S$ 中出现了 $2$ 次,$S2$ 也在 $S$ 中出现了 $2$ 次,最大跨距为:$18$。

Input

三个串:S1, S2, S3,其间以空格间隔(注意,S1, S2, S3 中均不含空格)。

Output

S1 和 S2 在 S 最大跨距;若在 S 中没有满足条件的 S1 和 S2,则输出 -1。

Sample 1 Input

abcd123ab888efghij45ef67kl ab ef

Sample 1 Output

18

Source/Category

C++语法 1.7.字符数组