def slove(d, s):
def add_long(col):
global res
for i in range(len(add[col])):
if add[col][i] == 0:
continue
if choices[i] < 2:
# 选择
choices[i] += 1
res += add[col][i]
# 进入下一层
add_long(i)
# 撤销选择
res -= add[col][i]
choices[i] -= 1
ans.append(res)
global res
longest_ans = []
add = [[0] * len(d) for _ in range(len(d))]
for i in range(len(d)):
for j in range(len(d)):
for k in range(1, len(d[j])):
if d[i].endswith(d[j][:k]):
add[i][j] = len(d[j][k:])
break
for i in range(len(d)):
if d[i].startswith(s):
ans = []
choices = [0]*len(d)
res = len(d[i])
choices[i] = 1
add_long(i)
longest = max(ans)
longest_ans.append(longest)
choices[i] = 0
print(max(longest_ans))
if __name__ == "__main__":
n = int(input())
d = []
for i in range(n):
d.append(input())
s = input()
slove(d, s)
就是不停的RE,很伤心,我测试样例和第一个点都能过的呜呜呜