Trong một thành phố tương lai, Robot Alpha cần tái tạo một chuỗi mục tiêu đã được mã hóa
từ một chuỗi dữ liệu ban đầu.
Alpha không thể nhập ký tự tùy ý mà phải di chuyển trong chuỗi ban đầu theo các quy tắc sau.
Cách Robot Alpha hoạt động:
- Di chuyển liên kề: Alpha có thể di chuyển sang ký tự kề bên trái hoặc kề bên phải trong chuỗi hiện tại và sao chép ký tự đó vào chuỗi kết quả.
- Di chuyển bằng kết nối dữ liệu: Alpha có thể dịch chuyển đến bất kỳ vị trí nào trong chuỗi có cùng ký tự với vị trí hiện tại mà không sao chép ký tự vào kết quả.
Mỗi lần di chuyển từ vị trí \(x\) sang vị trí \(y\) tốn \(|x-y|\) giây.
Yêu cầu:
Hãy xác định thời gian ngắn nhất để Alpha tạo ra chuỗi mục tiêu.
Nếu không thể tạo ra chuỗi mục tiêu, in ra \(-1\).
Input
- Dòng đầu chứa hai số nguyên \(n,m\) \((1 \le n,m \le 3000)\).
- Dòng thứ hai chứa \(n\) ký tự in thường — chuỗi dữ liệu ban đầu.
- Dòng thứ ba chứa \(m\) ký tự in thường — chuỗi mục tiêu.
Output
In ra một số nguyên là thời gian nhỏ nhất cần tìm, hoặc \(-1\) nếu không thể tạo được chuỗi mục tiêu.
Scoring
- Subtask 1 (50%): \(1 \le n,m \le 300\).
- Subtask 2 (50%): \(1 \le n,m \le 3000\).
Sample Input 1
2 2
wa
ac
Sample Output 1
-1
Sample Input 2
10 5
foodenferb
feren
Sample Output 2
7
Bình luận
Đăng nhập để bình luận
Chưa có bình luận nào.