Mật khẩu bí mật
Đề bài
Mô tả
Một hệ thống chấm bài lưu trữ danh sách mật khẩu, mỗi mật khẩu là một xâu gồm các chữ cái Latin thường. Hệ thống coi hai mật khẩu và là tương đương nếu:
- tồn tại một chữ cái xuất hiện trong cả và ; hoặc
- tồn tại một mật khẩu trong danh sách sao cho tương đương với và tương đương với .
Đúng một mật khẩu trong danh sách là mật khẩu của quản trị viên. Nếu ta thử đăng nhập bằng một mật khẩu tương đương với mật khẩu của quản trị viên thì ta truy cập được hệ thống.
Không biết mật khẩu nào là của quản trị viên, hãy tính số mật khẩu ít nhất cần thử để chắc chắn truy cập được hệ thống.
Dữ liệu vào
- Dòng đầu chứa số nguyên : số mật khẩu trong danh sách.
- dòng tiếp theo, mỗi dòng chứa một xâu khác rỗng gồm các chữ cái Latin thường. Một số mật khẩu có thể trùng nhau.
Dữ liệu ra
Một dòng duy nhất chứa số mật khẩu ít nhất cần thử để chắc chắn truy cập được hệ thống.
Ràng buộc
- Tổng độ dài các mật khẩu không vượt quá .
Ví dụ
| Input | Output | Giải thích |
|---|---|---|
| 4 a b ab d |
2 | Ba mật khẩu a, b, ab tương đương với nhau (a và ab cùng chứa chữ a, b và ab cùng chứa chữ b). Mật khẩu d không tương đương với mật khẩu nào khác. Cần thử 2 mật khẩu: một mật khẩu trong nhóm đầu và mật khẩu d. |
| 3 ab bc abc |
1 | Cả ba mật khẩu tương đương với nhau, nên thử một mật khẩu bất kỳ là đủ. |
| 5 aaa bbb ccc ddd ab |
3 | Mật khẩu ab nối aaa với bbb thành một nhóm; ccc và ddd đứng riêng. Tổng cộng 3 nhóm. |
Bình luận