Xoay vòng sắp xếp
Đề bài
Mô tả
Cho một mảng gồm số nguyên.
Trong một thao tác, bạn chọn một chỉ số () rồi xoay vòng đoạn sang phải một bước, tức là thay đoạn bằng .
Nhiệm vụ của bạn là sắp xếp mảng theo thứ tự không giảm bằng không quá thao tác, hoặc chỉ ra rằng điều đó là không thể.
Bạn phải trả lời bộ dữ liệu độc lập.
Dữ liệu vào
- Dòng đầu chứa một số nguyên () là số bộ dữ liệu.
- Với mỗi bộ dữ liệu:
- Dòng đầu chứa số nguyên () là độ dài mảng.
- Dòng thứ hai chứa số nguyên ().
Tổng của trên tất cả các bộ dữ liệu không vượt quá .
Dữ liệu ra
Với mỗi bộ dữ liệu, in ra:
- trên một dòng nếu không thể sắp xếp mảng bằng các thao tác đã mô tả; hoặc
- Số thao tác trên dòng đầu, sau đó là số nguyên (), trong đó là chỉ số biên trái của đoạn cho thao tác thứ . Các chỉ số được in theo đúng thứ tự thực hiện.
Nếu có nhiều đáp án hợp lệ, in ra một đáp án bất kỳ dùng không quá thao tác.
Ràng buộc
- Tổng không vượt quá .
Ví dụ
| Input | Output | Giải thích |
|---|---|---|
| 2 5 5 4 3 2 1 3 2 1 3 |
6 3 1 3 2 2 3 -1 |
Bộ 1: sáu thao tác đưa về . Bộ 2: mảng có các phần tử đôi một khác nhau và cần một số lẻ phép đổi chỗ để sắp xếp, nên không thể (đáp án ). |
| 1 6 1 2 3 3 6 4 |
2 4 3 |
Thực hiện thao tác tại rồi đưa về . Vì có giá trị lặp lại nên luôn sắp xếp được. |
Bình luận