Mất mát khi phiên âm
Đề bài
Mô tả
Khi viết tên bằng chữ cái Latin, có hai cách viết dễ gây nhầm lẫn:
- âm u có thể viết là "u" hoặc "oo", ví dụ "ulyana" và "oolyana" là cùng một tên;
- âm h có thể viết là "h" hoặc "kh", ví dụ "mihail" và "mikhail" là cùng một tên.
Một trang web có người dùng, mỗi người khai báo một tên gồm các chữ cái Latin thường. Hai từ được coi là cùng một tên nếu bằng cách thay "u" "oo" và "h" "kh" (theo cả hai chiều, trong bất kỳ từ nào, bao nhiêu lần cũng được) có thể biến hai từ thành giống hệt nhau. Chữ cái sinh ra từ một phép thay trước vẫn có thể tham gia các phép thay sau.
Ví dụ, "koouper" và "kuooper" là cùng một tên vì cả hai đều biến được thành "kuuper". Tương tự, "khun" và "kkkhoon" là cùng một tên: "khun" "khoon" và "kkkhoon" "kkhoon" "khoon".
Hãy chia danh sách từ thành ít nhóm nhất sao cho các từ trong mỗi nhóm là cùng một tên, và in ra số nhóm đó.
Dữ liệu vào
- Dòng đầu tiên chứa số nguyên , số từ trong danh sách.
- dòng tiếp theo, mỗi dòng chứa một từ gồm các chữ cái Latin thường.
Dữ liệu ra
In ra một số nguyên là số nhóm ít nhất.
Ràng buộc
- Độ dài mỗi từ từ đến .
Ví dụ
| Input | Output | Giải thích |
|---|---|---|
| 10 mihail oolyana kooooper hoon ulyana koouper mikhail khun kuooper kkkhoon |
4 | Các nhóm: {mihail, mikhail}, {oolyana, ulyana}, {kooooper, koouper, kuooper}, {hoon, khun, kkkhoon}. |
| 9 hariton hkariton buoi kkkhariton boooi bui khariton boui boi |
5 | Các nhóm: {hariton, kkkhariton, khariton}, {hkariton}, {buoi, boooi, boui}, {bui}, {boi}. Chữ "k" đứng sau "h" trong "hkariton" không bỏ được. |
| 2 alex alex |
1 | Hai từ giống hệt nhau. |
Bình luận