Xây dựng dãy số
Đề bài
Mô tả
Cho hai dãy số nguyên dương và . Các bạn cần xây dựng dãy gồm phần tử thỏa các yêu cầu sau:
- Tồn tại một dãy con của dãy là dãy con của dãy ,
- Các phần tử còn lại của dãy là một dãy con của đồng thời là dãy con của dãy ,
- Dãy có thứ tự từ điển nhỏ nhất.
Nói cách khác, có thể chia các phần tử của thành hai nhóm, mỗi nhóm giữ nguyên thứ tự xuất hiện trong : nhóm thứ nhất là một dãy con của , nhóm thứ hai là một dãy con của . Dãy con của một dãy là dãy thu được bằng cách xóa đi một số phần tử (có thể không xóa phần tử nào), các phần tử còn lại giữ nguyên thứ tự và không nhất thiết đứng liền nhau. Trong các dãy thỏa mãn hai điều kiện đầu, cần tìm dãy có thứ tự từ điển nhỏ nhất: dãy nhỏ hơn dãy (cùng độ dài ) nếu tại vị trí đầu tiên mà ta có .
Chú ý: Dãy rỗng được coi là dãy con của mọi dãy nên nếu dãy là dãy con của chỉ một trong hai dãy đã cho cũng được coi là thỏa mãn hai điều kiện đầu tiên.
Dữ liệu vào
- Dòng đầu chứa ba số nguyên .
- Dòng thứ hai chứa số .
- Dòng thứ ba chứa số .
Dữ liệu ra
In ra một dòng duy nhất chứa số của dãy tìm được, cách nhau bởi dấu cách.
Ràng buộc
Subtasks
- Subtask 1 ( số điểm): ;
- Subtask 2 ( số điểm): Không có ràng buộc bổ sung.
Ví dụ
| Input | Output | Giải thích |
|---|---|---|
| 7 4 9 1 2 1 3 1 2 1 1 2 3 1 |
1 1 1 1 2 1 2 3 1 | Dãy con của dãy là: . Các phần tử còn lại tạo thành dãy con của dãy là: . |
| 2 2 4 2 1 2 3 |
2 1 2 3 | Phải dùng hết cả hai dãy. Lấy từ dãy thì có thể là ; nếu lấy từ dãy thì chỉ được dãy lớn hơn. |
| 3 3 5 2 1 2 2 1 2 |
1 2 1 2 2 | Dãy con của là , dãy con của là (cả dãy ): . Nếu đã lấy mà chọn thì phải dùng hết của và chỉ được , lớn hơn. |
Bình luận