Liệt kê hoán vị bộ số (2)
Cho trước số nguyên dương \(n\). Viết chương trình in ra các hoán vị của bộ \(n\) số nguyên dương đầu tiên, theo thứ tự ngược.
Input Specification
Gồm số nguyên dương \(n\) được ghi trên một dòng duy nhất.
Output Specification
In ra kết quả mỗi hoán vị trên một dòng.
Constraints
\(n \leq 9\)
Input Sample
3
Output Sample
3 2 1
3 1 2
2 3 1
2 1 3
1 3 2
1 2 3
TeX Quotes (UVa 272)
TeX là ngôn ngữ dàn trang do Donald Knuth phát triển. Nó chuyển đổi văn bản nguồn cùng với một vài lệnh định dạng để tạo nên các tài liệu có hình thức đẹp. Các tài liệu đẹp thường sử dụng dấu ngoặc kép “ ” thay vì dấu " thông thường được cung cấp bởi bàn phím.
Bàn phím thường chỉ có dấu ngoặc kép không định hướng ", nhưng TeX yêu cầu dấu mở và dấu đóng khác nhau:
- Dấu mở: `` (hai dấu nháy trái)
- Dấu đóng: '' (hai dấu nháy phải)
Nhiệm vụ của bạn là viết một chương trình chuyển đổi tất cả các dấu ngoặc kép (") trong văn bản sang đúng dạng dấu ngoặc kép của TeX:
- Dấu
"đầu tiên trong cặp được thay bằng``. - Dấu
"thứ hai trong cặp được thay bằng''.
Giả sử rằng trong toàn bộ văn bản, số lượng dấu ngoặc kép " luôn là chẵn và các dấu ngoặc kép sẽ luân phiên nhau mở và đóng.
Input Specification
Gồm nhiều dòng văn bản (có thể chứa dấu ngoặc kép ").
Kết thúc đầu vào bằng EOF (End of File).
Output Specification
In ra văn bản tương tự đầu vào, chỉ khác là:
- Mỗi dấu
"đầu tiên trong cặp được thay bằng hai dấu nháy trái ``. - Mỗi dấu
"thứ hai trong cặp được thay bằng hai dấu nháy phải ''.
Constraints
- Dữ liệu đầu vào có thể dài tới \(10^5\) kí tự.
- Số lượng dấu ngoặc kép
"luôn là chẵn. - Các ký tự khác (bao gồm
', dấu chấm câu, xuống dòng) giữ nguyên.
Input Sample
"To be or not to be," quoth the Bard, "that is the question".
The programming contestant replied: "I must disagree.
To 'C' or not to 'C', that is The Question!"
Output Sample
``To be or not to be,'' quoth the Bard, ``that is the question''.
The programming contestant replied: ``I must disagree.
To 'C' or not to 'C', that is The Question!''
Mật khẩu mạnh
Khi đặt mật khẩu, để tăng độ khó của việc dò tấn công brute-force, ta đặt ra một số quy tắc như sau:
- Về độ dài: Mật khẩu cần có ít nhất 12 ký tự; (Càng dài, mật khẩu càng khó đoán và tấn công)
- Về kết hợp đa dạng kí tự: Mật khẩu cần chứa ít nhất một chữ cái in thường; một chữ cái in hoa; một chữ số và một ít nhất một kí tự khác (hay còn gọi là kí tự đặc biệt).
Nếu một mật khẩu thoả mãn hai điều kiện trên thì ta tạm gọi nó là một mật khẩu mạnh.
Cho trước một mật khẩu. Hãy viết chương trình kiểm tra xem nó có phải là mật khẩu mạnh hay không.
Input Specification
Gồm một xâu kí tự tương ứng là mật khẩu, trên một dòng duy nhất.
Output Specification
In ra "GOOD" nếu đó là mật khẩu mạnh, hoặc "BAD" trong trường hợp ngược lại.
Constraints
Mật khẩu đầu vào gồm không quá 100 kí tự.
Input Sample
123ABCxyz@@@
Output Sample
GOOD