Sắp xếp bằng các dãy con
Đề bài
Mô tả
Cho một dãy gồm số nguyên đôi một khác nhau.
Ta muốn chia dãy này thành nhiều nhất các dãy con sao cho: nếu sắp xếp các phần tử trong mỗi dãy con theo thứ tự tăng dần (giữ nguyên vị trí của các phần tử không thuộc dãy con đó), thì toàn bộ dãy trở thành dãy tăng dần.
Nói cách khác, một dãy con là một tập các vị trí. Khi sắp xếp một dãy con, các giá trị nằm tại những vị trí thuộc dãy con đó được xếp lại theo thứ tự tăng dần vào chính những vị trí ấy; các giá trị còn lại không đổi. Mỗi phần tử của dãy phải thuộc đúng một dãy con.
Hãy tìm số dãy con tối đa và chỉ ra một cách chia hợp lệ.
Dữ liệu vào
- Dòng đầu chứa số nguyên - độ dài của dãy.
- Dòng thứ hai chứa số nguyên khác nhau .
Dữ liệu ra
- Dòng đầu in ra số dãy con tối đa .
- Trong dòng tiếp theo, mô tả từng dãy con theo định dạng: số phần tử của dãy con, tiếp theo là số nguyên là chỉ số (tính từ ) của các phần tử thuộc dãy con đó.
Các chỉ số trong một dãy con có thể được in theo thứ tự bất kỳ, và các dãy con cũng có thể được in theo thứ tự bất kỳ. Mỗi chỉ số từ đến phải xuất hiện đúng một lần trong toàn bộ kết quả. Nếu có nhiều đáp án, in ra bất kỳ đáp án nào.
Ràng buộc
- , các đôi một khác nhau.
Ví dụ
| Input | Output | Giải thích |
|---|---|---|
| 6 3 2 1 6 5 4 |
4 2 1 3 1 2 2 4 6 1 5 |
Sắp xếp dãy con (giá trị ) cho . Dãy con không đổi. Sắp xếp (giá trị ) cho . Không thể chia thành nhiều hơn dãy con. |
| 6 83 -75 -49 11 37 62 |
1 6 1 2 3 4 5 6 |
Dãy đã được sắp xếp tăng dần, nên mọi phần tử buộc phải nằm trong cùng một dãy con; không thể chia nhỏ hơn. |
| 3 3 2 1 |
2 2 1 3 1 2 |
Sắp xếp dãy con (giá trị ) cho . Phần tử ở vị trí đã đúng chỗ. |
Bình luận