[C10_BDG_25] Mật khẩu an toàn

Xem dạng PDF

Gửi bài giải

Điểm: 1,00 (OI)
Giới hạn thời gian: 1.0s
Giới hạn bộ nhớ: 256M
Input: stdin
Output: stdout

Dạng bài
Ngôn ngữ cho phép
C, C++, Java, Pascal, Python

Mật khẩu an toàn là mật khẩu có độ dài ~n~, trong đó có ít nhất ~a~ ký tự hoa, ít nhất ~b~ ký tự thường, ít nhất ~c~ ký tự số và không có ~2~ ký tự liên tiếp giống nhau.

Biết quy tắc so sánh hai xâu ~X, Y~ theo thứ tự từ điển như sau:

  • Hai xâu bằng nhau nếu giống nhau hoàn toàn.
  • Xâu ~X~ lớn hơn xâu ~Y~ nếu ký tự đầu tiên khác nhau giữa chúng kể từ trái sang trong xâu ~X~ có mã ASCII lớn hơn.
  • Nếu ~X~ và ~Y~ là ~2~ xâu có độ dài khác nhau và xâu ~X~ là đoạn đầu của xâu ~Y~ thì xâu ~X~ nhỏ hơn xâu ~Y~.

Yêu cầu

Với ~4~ số ~n, a, b, c~ cho trước, hãy đưa ra mật khẩu an toàn nhỏ nhất và lớn nhất theo thứ tự từ điển.

Dữ liệu đầu vào

Gồm một dòng chứa ~4~ số nguyên ~n, a, b~ và ~c~ ~(a + b + c \le n, 1 \le n \le 100)~.

Dữ liệu đầu ra

Gồm hai dòng:

  • Dòng đầu tiên ghi mật khẩu có thứ tự từ điển nhỏ nhất.
  • Dòng thứ hai ghi mật khẩu có thứ tự từ điển lớn nhất.

Ví dụ

Ví dụ 1
INPUT
8 2 5 1
OUTPUT
0ABababa
zyzyzZY9

Sử dụng từ "ít nhất" trong đề bài dễ gây nhầm lẫn với ví dụ đưa ra phía trên. Cần lưu ý xét cả trường hợp ~n > a + b + c~, nếu thực sự là "ít nhất" thì ở chuỗi lớn nhất phải sử dụng càng nhiều kí tự thường càng tốt, chẳng hạn zyzyzyZY9 có thứ tự từ điển lớn nhất khi ~n = 9~, trong khi đó tôi vẫn đang sử dụng "ít nhất" ~5~ kí tự thường (cụ thể là ~6~).


Bình luận

Hãy đọc nội quy trước khi bình luận.


Không có bình luận tại thời điểm này.