Khoảng cách Hamming sau một phép đổi
Đề bài
Mô tả
Cho hai xâu và có cùng độ dài , chỉ gồm các chữ cái Latin in thường.
Khoảng cách Hamming giữa hai xâu cùng độ dài là số vị trí mà ký tự ở và khác nhau. Ví dụ, khoảng cách Hamming giữa "permanent" và "pergament" là vì hai xâu khác nhau ở vị trí và .
Bạn được phép đổi chỗ tối đa một cặp ký tự trong (chọn hai vị trí rồi tráo với ). Hãy xác định khoảng cách Hamming nhỏ nhất giữa và có thể đạt được sau thao tác này, và chỉ ra cặp vị trí cần đổi (nếu việc đổi chỗ giúp giảm khoảng cách).
Nếu không tồn tại cặp vị trí nào mà việc đổi chỗ giúp giảm khoảng cách Hamming, in ra -1 -1. Nếu có nhiều cách đáp số đúng, in ra một cách bất kỳ.
Dữ liệu vào
- Dòng đầu chứa số nguyên — độ dài của hai xâu.
- Dòng thứ hai chứa xâu .
- Dòng thứ ba chứa xâu .
Dữ liệu ra
- Dòng đầu in ra số — khoảng cách Hamming nhỏ nhất có thể đạt được.
- Dòng thứ hai in ra hai chỉ số và (, ) là cặp vị trí cần đổi chỗ trong để đạt được khoảng cách đó; hoặc in
-1 -1nếu không cần (hoặc không thể giảm khoảng cách bằng việc đổi chỗ).
Ràng buộc
- và chỉ gồm các chữ cái Latin in thường.
Ví dụ
| Input | Output | Giải thích |
|---|---|---|
| 9 pergament permanent |
1 4 6 |
Khoảng cách ban đầu là . Đổi chỗ vị trí và trong : "pergament" → "permanget", khoảng cách còn . |
| 6 wookie cookie |
1 -1 -1 |
Khoảng cách ban đầu là . Không có cách đổi chỗ nào làm giảm thêm. |
| 4 petr egor |
2 1 2 |
Khoảng cách ban đầu là . Đổi chỗ vị trí và : "petr" → "eptr", khoảng cách còn . |
| 6 double bundle |
2 4 1 |
Khoảng cách ban đầu là . Đổi chỗ vị trí và : "double" → "boudle", khoảng cách còn . |
Bình luận