Hoán đổi nguyên tố
Đề bài
Mô tả
Cho một mảng chứa số nguyên phân biệt từ đến (một hoán vị của ).
Bạn cần sắp xếp mảng này theo thứ tự tăng dần bằng cách thực hiện thao tác sau (có thể lặp lại nhiều lần):
- Chọn hai chỉ số và thỏa mãn và là số nguyên tố;
- Hoán đổi hai phần tử ở vị trí và (tức là đổi chỗ và ).
Bạn không cần tối thiểu hóa số thao tác. Tuy nhiên, tổng số thao tác sử dụng phải không vượt quá .
Dữ liệu đảm bảo luôn tồn tại lời giải với không quá thao tác.
Dữ liệu vào
- Dòng đầu chứa số nguyên .
- Dòng thứ hai chứa số nguyên phân biệt .
Dữ liệu ra
- Dòng đầu in số nguyên () là số thao tác sử dụng.
- dòng tiếp theo, mỗi dòng in hai số mô tả một thao tác ( và là số nguyên tố).
Nếu có nhiều đáp án, in ra bất kỳ đáp án hợp lệ nào.
Ràng buộc
- , các đôi một phân biệt.
Ví dụ
| Input | Output | Giải thích |
|---|---|---|
| 3 3 2 1 |
1 1 3 |
Hoán đổi vị trí 1 và 3 (độ dài đoạn là số nguyên tố), mảng thành 1 2 3. |
| 2 1 2 |
0 | Mảng đã sắp xếp, không cần thao tác nào. |
| 4 4 2 3 1 |
3 2 4 1 2 2 4 |
Một chuỗi thao tác hợp lệ đưa mảng về 1 2 3 4. Các đáp án khác cũng được chấp nhận nếu hợp lệ. |
Bình luận