Đảo tiền tố lẻ
Đề bài
Mô tả
Cho một hoán vị gồm số nguyên phân biệt từ đến , với là số lẻ. Nhiệm vụ của bạn là sắp xếp hoán vị này theo thứ tự tăng dần.
Mỗi bước, bạn được chọn một tiền tố có độ dài lẻ và đảo ngược nó. Cụ thể, bạn chọn một số nguyên lẻ với , khi đó mảng trở thành
Hãy tìm một cách sắp xếp bằng không quá phép đảo như trên, hoặc chỉ ra rằng không tồn tại cách nào. Số phép đảo không cần nhỏ nhất.
Dữ liệu vào
- Dòng đầu chứa số nguyên () là số bộ dữ liệu.
- Mỗi bộ dữ liệu gồm hai dòng:
- Dòng thứ nhất chứa số nguyên lẻ () là độ dài hoán vị.
- Dòng thứ hai chứa số nguyên phân biệt ().
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:
- Nếu không thể sắp xếp bằng không quá phép đảo, in ra một số .
- Ngược lại, in ra số nguyên () là số phép đảo, rồi in ra số nguyên (, lẻ) là độ dài các tiền tố được đảo, theo đúng thứ tự thực hiện.
Nếu có nhiều đáp án, in ra đáp án bất kỳ.
Ràng buộc
- , lẻ
- , các đôi một phân biệt
- Tổng trên mọi bộ dữ liệu không vượt quá
Ví dụ
| Input | Output | Giải thích |
|---|---|---|
| 3 3 1 2 3 5 3 4 5 2 1 3 2 1 3 |
5 3 1 3 3 3 10 3 1 3 3 5 3 1 3 3 3 -1 |
Bộ 1: hoán vị đã được sắp xếp, nhưng đáp án in ra vẫn hợp lệ vì sau phép đảo mảng trở lại trạng thái tăng dần; in ra cũng được chấp nhận. Bộ 2: một đáp án ngắn hơn là phép đảo với độ dài rồi , biến thành rồi thành . Bộ 3: giá trị đứng ở vị trí , không có cách nào sắp xếp nên in . |
| 2 5 1 4 3 2 5 7 7 6 5 4 3 2 1 |
10 5 3 5 3 5 1 1 3 3 3 15 1 1 3 3 7 5 1 3 3 5 3 1 3 3 3 |
Cả hai bộ đều sắp xếp được. Với giới hạn là phép đảo, với giới hạn là phép đảo, nên cả hai đáp án đều nằm trong giới hạn. |
Bình luận