Khoa và Hiếu đang mải mê cùng nhau giải quyết một bài toán hấp dẫn. Mỗi người viết ra một xâu, chỉ gồm các ký tự latinh in thường từ ‘a’ đến ‘z’. Sau đó hai bạn cố gắng xóa một số lượng ít nhất ký tự có thể (có thể không xóa ký tự nào) để nhận được hai xâu có ký tự giống nhau, có nghĩa là xâu này có các ký tự giống xâu kia và ngược lại. Trông đơn giản nhưng bài toán lại trở nên hóc búa khi độ dài của hai xâu quá lớn so với tốc độ tính toán của hai bạn. Hãy giúp Khoa và Hiếu tính toán ra đáp số của bài toán nhé.
Yêu cầu: Cho trước hai xâu ký tự do Khoa và Hiếu viết ra, hãy tính tổng số lượng ký tự ít nhất cần xóa (ở cả hai xâu) để nhận được hai xâu có ký tự giống nhau.
Dữ liệu:
- Dòng đầu tiên chứa xâu \(S_{1}\) do Khoa viết ra.
- Dòng tiếp theo chứa xâu \(S_{2}\) do Hiếu viết ra.
Kết quả: Ghi một số nguyên duy nhất là số lượng ký tự ít nhất cần xóa để nhận được hai xâu có ký tự giống. Dữ liệu đảm bảo bạn luôn tìm được một phương án xóa thỏa mãn đề bài.
Ví dụ:
LCS.INP | LCS.OUT |
---|---|
hocsinhgioi lopchin | 4 (Giải thích: Xóa ký tự ‘s’ và ‘g’ ở xâu \(S_{1}\), xóa ký tự ‘l’ và ‘p’ ở xâu \(S_{2}\), ta được hai xâu có giống nhau |
Ràng buộc:
- Có 70% số test ứng với 70% số điểm của bài có \(\left| S_{1} \right|,\ |S_{2}| \leq 200\).
- 30% số test còn lại ứng với 30% số điểm của bài có \(\left| S_{1} \right|,\ |S_{2}| \leq 300\).
Code tích cực |
---|
Trong 24h |
Trong 7 ngày |
|
Trong 30 ngày |
|
Thống kê |
---|
AC/Sub: 97887/180710 Pascal: 17121 C++: 130348 Python: 33199 Lượt xem/tải tests: 38905 |