Hiện nay, với sự bùng nổ của công nghệ thông tin, mỗi cá nhân đều có cho mình một số tài khoản (tài khoản facebook, tài khoản e-mail, tài khoản twitter…). Các tài khoản này đều cần được bảo vệ bằng các mật khẩu. Một vấn đề quan trọng là cần chọn được các mật khẩu “an toàn” để tránh bị đánh cắp tài khoản.
Giả sử mỗi mật khẩu là một chuỗi ký tự khác rỗng chỉ gồm các chữ cái la-tinh in hoa ( A
… Z
), in thường ( a
… z
) và chữ số ( 0
.. 9
). Ta đánh giá độ “an toàn” của mật khẩu bởi hai tiêu chí:
- Độ dài (số ký tự): là một số nguyên trong phạm vi từ ~0..5~: Nếu mật khẩu có độ dài là m thì độ an toàn là: ~\min(5, \max(m – 5, 0))~
- Loại ký tự (hoa, thường, số):
- Nếu chỉ có một loại ký tự: ~1~
- Có đúng hai loại ký tự: ~2~
- Có đủ ~3~ loại ký tự: ~5~
Độ an toàn của mật khẩu là tổng của hai tiêu chí trên.
Ví dụ: mật khẩu là Abcd123456
có độ an toàn là: ~5~ (độ dài) + ~5~ (loại ký tự) = ~10~.
Bạn được cho một danh sách các mật khẩu, hãy viết chương trình để đánh giá “độ an toàn” của các mật khẩu đó.
Input
- Dòng đầu chứa số nguyên dương ~n~ là số mật khẩu cần đánh giá.
- ~n~ dòng tiếp theo, mỗi dòng chứa một mật khẩu là xâu ký tự khác rỗng, chỉ chứa các ký tự la-tinh in hoa (
A
…Z
), in thường (a
…z
) và chữ số (0
..9
), độ dài không quá ~15~ ký tự.
Giới hạn:
- ~1 ≤ n ≤ 100~.
Output
Ghi trên một dòng ~n~ số nguyên là độ an toàn của ~n~ mật khẩu (theo đúng thứ tự), hai số liên tiếp ghi cách nhau một dấu cách.
Sample
Input #1
4
Password
security
A1234
Abcd123456
Output #1
5 4 2 10
Problem source: Chuyên Sơn La Online Judge
Bình luận
có bộ test dài hơn 15 kí tự nhé.