UOJ Logo

NOI.AC

1S 512MB
Statistics

题目描述

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

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

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

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

输入格式

第一行两个正整数 n,m ,分别代表 ST 的长度

第二行为 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,m5

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

对于 100% 的数据,满足 n,m300