Thu thập ký tự

View as PDF

Time limit: 1.0s , Memory limit: 256M , Points: 100 (partial)

Cho hai xâu s độ dài nt độ dài m. Fabijan tham gia trò chơi thu thập ký tự bằng cách chọn một vị trí bất kỳ trên xâu s và viết ký tự tại vị trí đó lên giấy. Sau đó ở mỗi lượt, Fabijan có thể thực hiện một trong hai thao tác:

  • Di chuyển đến vị trí kề trái hoặc kề phải (nếu tồn tại) so với vị trí hiện tại, sau đó viết lên giấy ký tự tại vị trí đó của xâu s lên giấy, ngay sau các ký tự đã viết.
  • Di chuyển đến bất kỳ vị trí nào có cùng ký tự với vị trí hiện tại, nhưng không viết ký tự đó lên giấy.

Di chuyển từ vị trí x đến vị trí y mất |x-y| đơn vị thời gian.

Các ký tự được viết trên giấy trở thành một xâu z. Để hoàn thành trò chơi, Fabijan phải thực hiện các lượt chơi sao cho z=t. Hãy giúp Fabijan xác định thời gian ngắn nhất để hoàn thành trò chơi.

Input

  • Dòng đầu tiên chứa hai số nguyên nm (1 \le n,m \le 300).
  • Dòng thứ hai chứa xâu s độ dài n.
  • Dòng thứ hai chứa xâu t độ dài m.
  • Các xâu chỉ chứa ký tự bảng chữ cái in thường.

Output

  • In ra thời gian nhỏ nhất để hoàn thành trò chơi. Nếu không tồn tại cách chơi nào phù hợp, in ra -1.

Samples

Sample Input 1
2 2
wa
ac
Sample Output 1
-1
Sample Input 2
7 7
monolog
nogolom
Sample Output 2
10
Sample Input 3
14 5
niskoobrazovan
boook
Sample Output 3
5

Scoring

  • Subtask 1 với 50\% số điểm: Xâu t chứa các ký tự khác nhau đôi một
  • Subtask 2 với 50\% số điểm: Không còn ràng buộc gì thêm

Clarification

Ở ví dụ thứ ba, Fabijan bắt đầu ở vị trí 7 và viết ký tự \text{b}. Sau đó lần lượt di chuyển sang trái ở hai lượt chơi tiếp theo và viết lần lượt hai ký tự \text{o}. Fabijan sau đó thực hiện thao tác loại 2 để di chuyển đến vị trí 6 (lưu ý không viết ký tự khi thực hiện loại thao tác này). Cuối cùng, tiếp tục lần lượt di chuyển sang trái ở hai lượt chơi tiếp theo và viết lần lượt ký tự \text{o} và ký tự \text{k}. Tổng cộng mất 5 đơn vị thời gian để hoàn thành trò chơi.


Comments