Trong một thành phố tương lai, các robot có khả năng tự học hỏi và phát triển kỹ năng ngôn ngữ để giao tiếp với con người. Một trong số đó là Robot Alpha, một robot tiên tiến nhưng gặp vấn đề trong việc nhận diện và sắp xếp thông tin văn bản. Để giúp Alpha cải thiện khả năng này, một bài kiểm tra đặc biệt đã được thiết kế. Robot Alpha sẽ được cụng cấp một chuỗi dữ liệu hỗn loạn và cần phải tái tạo lại một chuỗi mục tiêu đã được mã hóa. Tuy nhiên, Alpha không thể tự do nhập ký tự mà phải tuân theo quy tắc di chuyển đặc biệt.
Cách Robot Alpha hoạt động:
Di chuyển liền kề: Alpha có thể di chuyển đến 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 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 cần sao chép ký tự vào kết quả.
Điều này giúp Alpha di chuyển nhanh hơn mà không thay đổi nội dung của kết quả.
Việc di chuyển tốn |x - y| giây, trong đó x và y là vị trí của ký tự ban đầu và ký tự mới.
Yêu cầu: Alpha phải tạo ra chuỗi mã hóa mục tiêu trong thời gian ngắn nhất.
Dữ liệu: Vào từ thiết bị nhập chuẩn
Dòng đầu tiên chứa một số nguyên n, m (1 ≤ n, m ≤ 3000).
Dòng thứ hai chứa n kí tự in thường, là chuỗi dữ liệu hỗn loạn ban đầu.
Dòng thứ ba chứa chuỗi mục tiêu được mã hóa.
Kết quả: Ghi ra thiết bị xuất chuẩn in ra thời gian ngắn nhất. Nếu không tạo được chuỗi mục tiêu thì in ra -1.
Input 01:
2 2
wa
ac
Output 01:
-1
Input 02:
10 5
Doofenferb
feren
Output 02:
7
Giải thích test 2: Alpha xuất phát từ vị trí thứ 7 và sao chếp từ : 'f'. Sau đó Alpha di chuyển sang phải hai lần, sao chép Lần lượt kí tự 'e', 'r'. Tiếp theo, Alpha di chuyên sang trái một lần, sao chép kí tự 'e'. Sau đó bằng cách hai Alpha di chuyển đến vị trí thứ 5. Cuối cùng di chuyến sang phải một lần, sao chép kí tự 'n'. Tổng cộng mất thời gian là 7 giây.
50% số điểm ứng với các test có 1 ≤ n, m ≤ 300.
50% số điểm còn lại không có ràng buộc bổ sung.
Bình luận