Sắp Xếp Từng Phần
Đề bài
Mô tả
Có con bò được đánh số từ đến , đứng thành hàng với thứ tự ban đầu (một hoán vị của ).
Khi "gọi" một con bò, nó sẽ di chuyển bằng cách đổi chỗ với các bò kề nhau theo quy tắc sau: trước tiên nó đi sang phải cho đến khi không còn con nào nhỏ hơn nó ở bên phải; sau đó nó đi sang trái cho đến khi không còn con nào lớn hơn nó ở bên trái. Quá trình này lặp lại cho đến khi bò không di chuyển nữa.
Chọn một tập con các con bò và gọi lần lượt các bò trong tập đó theo thứ tự ID tăng dần (lặp lại nhiều lần cho đến khi tất cả bò được sắp xếp). Mục tiêu là toàn bộ hàng bò đạt thứ tự .
Hãy tìm tập con có kích thước nhỏ nhất và trong số các tập con nhỏ nhất, in ra tập con thứ theo thứ tự từ điển nhỏ nhất (sắp xếp theo ID bò tăng dần).
Dữ liệu vào
- Dòng 1: hai số nguyên và (, )
- Dòng 2: số nguyên , là hoán vị ban đầu
Dữ liệu ra
- Dòng 1: kích thước tập con tối thiểu
- dòng tiếp theo: ID các bò trong tập, mỗi dòng một ID, theo thứ tự tăng dần
Ràng buộc
- Đảm bảo không vượt quá số tập con tối thiểu thực tế
Ví dụ
| Input | Output | Giải thích |
|---|---|---|
| 4 1 4 2 1 3 |
2 1 4 |
Không có tập con nào gồm con bò sắp xếp được hàng, nên kích thước tối thiểu là . Trong các tập con kích thước làm được, là tập nhỏ nhất theo thứ tự từ điển, và nên đây chính là đáp án. |
| 6 1 6 4 2 5 1 3 |
4 1 2 3 6 |
Kích thước tối thiểu là . Tập từ điển nhỏ nhất trong số đó là . |
| 2 2 2 1 |
1 2 |
Cả lẫn đều đủ để sắp xếp hàng, và đó là tất cả các tập con kích thước tối thiểu. Theo thứ tự từ điển chúng là rồi ; nên ta in ra . |
Bình luận