Problem11186--写字

11186: 写字

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

Description

下面将给出你两个字符串,一个为模板串 $S$,一个为目标串 $T$ 初始时,你拥有一个空串,你可以选择 $S$ 中任意一个位置 $x$,将 $S[x]$ 写下,并随后执行下列两种操作:
  • 移动到当前位置的左侧/右侧 (如果这个位置存在),并将新位置对应的字符写下,花费 $1$ 秒。
  • 移动到 $S$ 中一个与当前位置 $x$ 字母相同的任意位置 $y\ (x≠y)$,花费 $|x−y|$ 秒,不会写下任何东西。
现在,请你回答,写出目标串 $T$ 的最小时间,如果不可能写出请输出 $-1$。

Input

第一行两个正整数 $n,m$,分别代表 $S$ 和 $T$ 的长度
第二行为 $n$ 个小写字母,表示 $S$
第三行为 $m$ 个小写字母,表示 $T$

Output

一个整数,表示写出 $T$ 的最短时间。特别的,如不能写出 $T$ 则输出 $−1$。

Constraints

对于前 $20\%$ 的数据,满足 $n,m≤5$
对于另外 $30\%$ 的数据,满足 $S$ 中字母互不相同
对于 $100\%$ 的数据,满足 $n,m≤300$

Sample 1 Input

14 5 
niskoobrazovan 
boook

Sample 1 Output

5
初始时可以选择 $x=7$,写下 b,接下来用 操作1 连续往左移动两次,写下 o,然后 操作2 移动到位置 $6$,不写下字母,随后 操作1 移动到位置 $5$,写下 $o$,操作1 移动到位置 $4$,写下 k,组成 boook

Sample 2 Input

2 2
wa
ac

Sample 2 Output

-1

Source/Category