Ôn luyện 27/09/2024
Điểm: 100
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
Điểm: 100
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 có biện pháp bảo vệ các mật khẩu đó “an toàn” để tránh bị đánh cắp tài khoản.
Tèo luôn chọn cho mình những mật khẩu gồm một số chữ cái la-tinh đứng đầu (không quá ~10~ chữ cái) và đem ghép vào cuối một số nguyên dương trong hệ thập phân (không quá ~6~ chữ số). Ví dụ: Abcd12
. Sau đó Tèo mã hóa mật khẩu bằng cách tách phần số ở cuối, giữ lại phần chữ cái ở đầu và đem chèn vào giữa các chữ cái đó (có thể cả ở đầu và ở cuối) một số chữ số từ ~0~ đến ~9~ sao cho tổng các chữ số được chèn đúng bằng số ở cuối của mật khẩu. Ví dụ: A1b23c4d2
là một cách mã hóa của mật khẩu Abcd12
(các chữ số được dùng để chèn là ~1 + 2 + 3 + 4 + 2 = 12~).
Bạn hãy giúp Tèo viết một chương trình giải mã mật khẩu nhé?
Input
- Một dòng duy nhất chứa xâu ký tự mật khẩu đã mã hóa chỉ gồm các chữ cái la-tinh và chữ số.
Giới hạn:
- Độ dài xâu mã hóa không quá ~10^5~ ký tự trong đó có chứa ít nhất một chữ cái la-tinh và ít nhất một chữ số khác ~0~.
Output
- Ghi ra một dòng duy nhất là mật khẩu giải mã được.
Sample
Input #1
A1b23c4d2
Output #1
Abcd12
Problem source: Chuyên Sơn La Online Judge
Điểm: 100
Cho một danh sách gồm ~n~ tên riêng, mỗi tên riêng gồm một hoặc nhiều từ được tạo bởi các kí tựlatin. Giữa các từ có ít nhất một kí tự khoảng trắng, và có thể có kí tự khoảng trắng ở đầu hoặc cuối tên riêng. Nhiệm vụ của bạn là chuẩn hoá các tên riêng này về đúng định dạng.
Một tên riêng được gọi là đúng định dạng nếu thoả các điều kiện sau:
- Giữa các từ có đúng một kí tự khoảng trắng và không có kí tự khoảng trắng nào ở đầu hoặc cuối tên riêng.
- Với mỗi từ trong tên riêng, kí tự đầu tiên của từ được in hoa và các kí tự còn lại của từ được in thường.
Ví dụ:
- “Viet Nam”, “Ha Noi”, “Hue”, “Ho Chi Minh”, “Can Tho” là các tên riêng đúng định dạng.
- “viet nam”, “HA NOI”, “hUE”, “Ho Chi Minh”, “ Can Tho ” là các tên riêng chưa đúngđịnh dạng.
Input
- Dòng đầu tiên gồm số nguyên dương ~n (1 ≤ n ≤ 1000)~ - số tên riêng trong danh sách
- ~n~ dòng tiếp theo, mỗi dòng gồm một xâu chứa không quá 50 kí tự - mô tả một tên riêng.
Output
- In ra các tên riêng sau khi đã được chuẩn hoá, mỗi tên riêng nằm trên một dòng.
Sample
Input #1
6
viet nam
HA NOI
hUE
Ho Chi Minh
Can Tho
Free Contest
Output #1
Viet Nam
Ha Noi
Hue
Ho Chi Minh
Can Tho
Free Contest
Problem source: Kc97ble - Free Contest
Điểm: 100
Dr. Patel đang thực hiện bài phỏng vấn cho công ty Gooogle. Bài phỏng vấn của Dr. Patel như sau:
Cho một xâu ký tự ~S~ có độ dài ~N~. Yêu cầu tìm xâu con liên tiếp có kí tự giống nhau dài nhất trong xâu ký tự ~S~.
Input
- Dòng đầu tiên chứa 1 số ~T~ là số bộ test ~(1 \leq T \leq 100)~.
- Với mỗi bộ test, gồm 2 dòng, dòng đầu tiên là số nguyên ~N~ ~(1 \leq N \leq 10^5)~ và một xâu ký tự ~S~ chỉ gồm các ký tự in hoa.
Output
- Gồm ~T~ dòng là kết quả cho từng test. Giống như định dạng của sample.
Sample
Input #1
3
9
BBCCZZZZO
17
GGOOOOOOOOOGLEEEE
1
G
Output #1
Case #1: 4
Case #2: 9
Case #3: 1
Giải thích #1
Chẳng hạn BBCCZZZZO
có Z
gồm 4 ký tự gần nhau nhiều nhất nên in ra ~4~, tương tự với GGOOOOOOOOOGLEEEE
có 9 chữ O
gần nhau nhiều nhất nên in ra ~9~.
Điểm: 100
Cho 2 dãy nhị phân ~A~ và ~B~. Hãy thực hiện phép ~A\ xor\ B~ ( phép ~xor~ tương đương với toán tử ^
trong một số các ngôn ngữ lập trình ) và in ra kết quả của phép ~xor~ đó.
Input
- 1 dòng gồm 2 dãy nhị phân ~A~ và ~B~.
Biết rằng
- ~1 \leq |A|, |B| \leq 50~ (với ~|A|~ là độ dài của dãy nhị phân ~A~, ~|B|~ là độ dài của dãy nhị phân ~B~)
- ~|A| = |B|~
Output
- 1 dòng là kết quả của phép ~A\ xor\ B~ (nếu kết quả có chữ số không đứng đầu, hãy loại bỏ nó).
Sample
Input #1
1010 1100
Output #1
110