Chồng Bài
Đề bài
Mô tả
Bạn có một chồng gồm lá bài và muốn sắp xếp lại thành một chồng mới.
Mỗi lá bài mang một giá trị nguyên từ đến ; giá trị của lá thứ là . Tất cả đôi một khác nhau. Các lá bài trong chồng được đánh số từ dưới lên trên, tức là lá dưới cùng và là lá trên cùng.
Ở mỗi bước, bạn chọn một số nguyên , lấy lá trên cùng của chồng gốc và đặt chúng, giữ nguyên thứ tự hiện tại, lên trên chồng mới. Bạn lặp lại thao tác này cho đến khi chồng gốc rỗng.
Định nghĩa độ lớn của một chồng bài là
Cho chồng bài ban đầu, hãy xuất chồng bài có độ lớn lớn nhất mà bạn có thể tạo ra.
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òng đầu chứa số nguyên là số lá bài.
- Dòng thứ hai chứa số nguyên là giá trị các lá bài từ dưới lên trên.
Dữ liệu ra
Với mỗi bộ dữ liệu, in ra chồng bài có độ lớn lớn nhất, liệt kê giá trị các lá từ dưới lên trên.
Nếu có nhiều đáp án, in ra một đáp án bất kỳ (bài toán có đáp án duy nhất về mặt độ lớn nên thứ tự các lá là xác định).
Ràng buộc
- ; nếu
- Tổng trên tất cả các bộ dữ liệu không vượt quá
Ví dụ
| Input | Output | Giải thích |
|---|---|---|
| 4 4 1 2 3 4 5 1 5 2 4 3 6 4 2 5 3 6 1 1 1 |
4 3 2 1 5 2 4 3 1 6 1 5 3 4 2 1 |
Bộ 1: lấy từng lá một từ trên xuống, thu được với độ lớn . |
| 3 1 1 2 1 2 2 2 1 |
1 2 1 2 1 |
Bộ 2: lấy lá trên cùng () đặt xuống dưới chồng mới, rồi lấy lá còn lại, được . Bộ 3 đã sẵn có ở đáy nên lấy cả hai lá một lần, giữ nguyên . |
Bình luận