TS10 Bình Dương 2025 - Bài 2: Mật khẩu

Xem PDF



Tác giả:
Dạng bài
Ngôn ngữ cho phép
Assembly, Awk, C, C#, C++, Clang, Cobol, D, Groovy, Haskell, JS, Java, Kotlin, Lua, Node JS, OCaml, ObjectiveC, Output, PHP, Pascal, Perl, Prolog, Pypy, Pypy 3, Python, Ruby, Rust, Scala, Scratch, Swift
Điểm: 1100 Thời gian: 1.0s Bộ nhớ: 256M Input: bàn phím Output: màn hình

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.

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. 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\)\(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\).

Dữ liệu vào

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

Dữ liệu ra

Đưa ra các mật khẩu tìm được, mỗi mật khẩu trên một dòng. Dòng đầu tiên ghi mật khẩu có thứ tự từ điển nhỏ nhất, dòng thứ 2 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

Bình luận

Mới nhất
Tải bình luận...

Không có bình luận nào.