Sắp xếp bằng hoán đổi xa
Đề bài
Mô tả
Cho một hoán vị của các số nguyên từ đến , trong đó là số chẵn.
Nhiệm vụ của bạn là sắp xếp hoán vị này theo thứ tự tăng dần. Để làm điều đó, bạn được thực hiện không quá thao tác, mỗi thao tác có dạng:
- Chọn hai chỉ số và thoả mãn , rồi hoán đổi và .
Bạn không cần cực tiểu hoá số thao tác, chỉ cần dùng không quá thao tác. Có thể chứng minh rằng với mọi hoán vị đầu vào luôn tồn tại một cách làm như vậy.
Dữ liệu vào
- Dòng đầu chứa số nguyên (, chẵn) là độ dài hoán vị.
- Dòng thứ hai chứa số nguyên đôi một khác nhau ().
Dữ liệu ra
- Dòng đầu ghi số nguyên () là số thao tác bạn thực hiện.
- dòng tiếp theo, dòng thứ ghi hai số nguyên (, ) là hai chỉ số được hoán đổi ở thao tác thứ .
Sau khi thực hiện lần lượt tất cả các thao tác, mảng phải trở thành . Nếu có nhiều đáp án, in ra đáp án bất kỳ.
Ràng buộc
- , chẵn
- là một hoán vị của
Ví dụ
| Input | Output | Giải thích |
|---|---|---|
| 2 2 1 |
1 1 2 |
nên điều kiện là . Hoán đổi hai vị trí và là xong. |
| 4 3 4 1 2 |
2 1 3 2 4 |
Điều kiện là . Sau thao tác mảng thành , sau thao tác mảng thành . |
| 6 2 5 3 1 4 6 |
9 1 4 2 6 1 4 1 6 2 6 1 4 1 4 1 5 1 4 |
Điều kiện là . Đáp án không cần tối ưu: chỉ cần hợp lệ và không quá thao tác. Ở đây nên được chấp nhận, dù tồn tại lời giải chỉ dùng thao tác. |
Bình luận