Với một xâu ký tự S cho trước, ta có thể thực hiện các phép biến đổi sau:
- D: Xoá một ký tự của xâu S. Ký hiệu D i trong đó i là vị trí cần xóa
- I: Chèn trước vị trí t của xâu S một ký tự c nào đó. Ký hiệu I t c. Qui định thêm về vị trí chèn: nếu xâu S có độ dài k, vị trí chèn là 1, 2, 3, ..., k+1, chèn ở vị trí k+1 có nghĩa là viết thêm vào cuối xâu S
- R: Thay ký tự thứ t của S bởi ký tự c nào đó. Ký hiệu R t c
Giả sử X và Y là hai xâu ký tự. Độ dài xâu X là n, độ dài xâu Y là m (0≤m,n≤100)
Hãy tìm một dãy gồm ít nhất các phép biến đổi biến xâu X thành xâu Y (số phép biến đổi ít nhất này gọi là khoảng cách giữa hai xâu)
Dữ liệu vào cho trong file CHANGEST.INP gồm hai dòng
- Dòng thứ nhất là xâu X
- Dòng thứ hai là xâu Y
Kết quả ghi ra file CHANGEST.OUT:
- Dòng thứ nhất ghi số K, đó là khoảng cách giữa hai xâu
- K dòng tiếp theo mỗi dòng ghi ký hiệu một phép biến đổi theo trình tự thực hiện để biến X thành Y