Nộp bài
Điểm:
1300 (thành phần)
Thời gian:
0.75s
Bộ nhớ:
256M
Input:
PERMUTATION.inp
Output:
PERMUTATION.out
Tác giả:
Dạng bài
Cho một số nguyên dương n. Xét một hoán vị A = (1, 2, 3, ..., n). Bạn phải sử dụng chính xác n! - 1 thao tác, mỗi thao tác sẽ đổi chỗ hai số trong dãy A, để tạo ra tất cả các hoán vị cùa dãy (1, 2, 3, ..., n).
Định nghĩa: Dãy số A được xem là hoán vị của dãy số B khi và chỉ khi nếu sắp xếp lại hai dãy số A và B theo thứ tự tăng dần, ta thu được hai dãy giống hệt nhau. Ví dụ (2, 1, 3) là hoán vị của (1, 2, 3), nhưng (1, 2, 4) thì không.
Input, Output và Subtasks
Input: (PERMUTATION.inp
)
- Một dòng duy nhất gồm số nguyên dương n (2 \le n \le 10).
Output: (PERMUTATION.out
)
- Gồm n! - 1 dòng, mỗi dòng gồm hai số nguyên dương i, j miêu tả việc đổi chỗ A_i và A_j.
Subtasks
- Đề bài có 9 test, test thứ i có n = i + 1.
Sample 1
Input (PERMUTATION.inp
)
2
Output (PERMUTATION.out
)
1 2
Note
Các hoán vị được tạo ra là: hoán vị ban đầu (1, 2) và hoán vị (2, 1).
Sample 2
Input (PERMUTATION.inp
)
3
Output (PERMUTATION.out
)
1 2
1 3
1 2
1 3
1 2
Note
Các hoán vị được tạo ra là:
- Hoán vị ban đầu: (1, 2, 3).
- Sau thao tác 1: (2, 1, 3).
- Sau thao tác 2: (3, 1, 2).
- Sau thao tác 3: (1, 3, 2).
- Sau thao tác 4: (2, 3, 1).
- Sau thao tác 5: (3, 2, 1).
Bình luận