UOJ Logo

NOI.AC

1S 512MB
Statistics

题目描述

下面将给出你两个字符串,一个为模板串 $S$ ,一个为目标串 $T$

初始时,你拥有一个空串,你可以选择 $S$ 中任意一个位置 $x$ ,将 $S[x]$ 写下,并随后执行下列两种操作:

  1. 移动到当前位置的 左侧/右侧 (如果这个位置存在),并将新位置对应的字符写下,花费 $1$ 秒。
  2. 移动到 $S$ 中一个与当前位置 $x$ 字母相同的任意位置 $y$ $(x \neq y)$ ,花费 $|x-y|$ 秒,不会写下任何东西

现在,请你回答,写出目标串 $T$ 的最小时间,如果不可能写出请输出 $-1$ 。

输入格式

第一行两个正整数 $n,m$ ,分别代表 $S$ 和 $T$ 的长度

第二行为 $n$ 个小写字母,表示 $S$

第三行为 $n$ 个小写字母,表示 $T$

输出格式

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

输入样例1
14 5 
niskoobrazovan 
boook
输出样例1
5

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

输入样例2
2 2
wa
ac
输出样例2
-1

数据范围与约定

对于前 $20\%$ 的数据,满足 $n,m \leq 5$

对于另外 $30\%$ 的数据,满足 $S$ 中字母互不相同

对于 $100\%$ 的数据,满足 $n,m \leq 300$