#L6141. 「2017 山东三轮集训 Day5」Fantasy

「2017 山东三轮集训 Day5」Fantasy

题目描述

JOHNKRAM 收到了一个字符串 SS,但他不喜欢这个串,他决定把它变成 TT

JOHNKRAM 最近学习了一些后缀数据结构,他相信通过替换后缀可以实现一切操作。他有 mm 种替换方式,每种替换方式包含两个等长的字符串 uuvv,如果当前 uuSS 的后缀,则可以将 SS 的后缀 uu 替换成 vv

现在 JOHNKRAM 希望你能帮他计算出,最少需要替换多少次才能将 SS 变成 TT

输入格式

一个测试点包含多组数据。
每组数据第一行包含两个字符串 SSTT 以及一个整数 nn,意思如题所示。
接下来 nn 行每行两个字符串 uuvv,表示一种替换方式。
输入文件以一个 . 结束。

输出格式

对于每一组数据,输出该组数据编号以及最小步数,如果无解输出 No solution。格式参见样例。

样例

输入:

AA BB 4
A B
AB BA
AA CC
CC BB
A B 3
A C
B C
c B
.

输出:

Case 1: 2
Case 2: No solution

数据范围与提示

对于 30%30\% 的数据,字符串长度 1\leq 1
对于 45%45\% 的数据,字符串长度 5\leq 5
对于 100%100\% 的数据,字符串长度 20\leq 201n1001 \leq n \leq 100,字符集为大小写字母。