Mô tả
Cuối năm, Vietravel và Saigontourist cùng tổ chức một chuyến du lịch đặc biệt dành riêng cho khách VIP. Mỗi bên đã chuẩn bị sẵn danh sách mã khách hàng của mình, theo thứ tự ưu tiên từ thấp đến cao — tức mã số nhỏ đứng trước, mã số lớn đứng sau.
Ban tổ chức muốn gộp hai danh sách này thành một danh sách chung duy nhất, sao cho mã khách hàng vẫn tăng dần đều. Khi mã trùng nhau ở hai bên, khách thuộc Vietravel được xếp trước (danh sách thứ nhất ưu tiên). Bạn hãy viết chương trình trộn hai mảng đã sắp xếp này lại với nhau.
Đầu vào
Hàm nhận hai tham số:
a: mảng số nguyên, danh sách mã khách VIP của Vietravel, đã sắp xếp tăng dần (không giảm).b: mảng số nguyên, danh sách mã khách VIP của Saigontourist, đã sắp xếp tăng dần (không giảm).
Đầu ra
Trả về một mảng số nguyên là kết quả trộn a và b, vẫn theo thứ tự không giảm. Khi hai phần tử bằng nhau, phần tử lấy từ a (Vietravel) phải xuất hiện trước.
Ràng buộc
- 0 ≤ độ dài mỗi mảng ≤ 10^5.
- Tổng số phần tử của hai mảng ≤ 10^5.
- 0 ≤ mỗi mã khách hàng ≤ 10^9.
- Mỗi mảng đã sẵn sắp xếp không giảm theo đề bài.
Ví dụ
Ví dụ 1:
- Đầu vào:
a = [1001, 1003, 1007],b = [1002, 1004, 1009] - Đầu ra:
[1001, 1002, 1003, 1004, 1007, 1009]
Giải thích từng bước:
- So sánh 1001 và 1002 → lấy 1001 từ Vietravel.
- So sánh 1003 và 1002 → lấy 1002 từ Saigontourist.
- So sánh 1003 và 1004 → lấy 1003.
- So sánh 1007 và 1004 → lấy 1004.
- So sánh 1007 và 1009 → lấy 1007.
- Saigontourist còn 1009 → thêm vào cuối.
Ví dụ 2:
- Đầu vào:
a = [2005, 2005, 2010],b = [2005, 2008] - Đầu ra:
[2005, 2005, 2005, 2008, 2010]
Giải thích: Có mã 2005 xuất hiện ở cả hai mảng. Vì Vietravel được ưu tiên nên hai mã 2005 của Vietravel được lấy trước (1005 ≤ 1005 dùng dấu <=), sau đó mới tới 2005 của Saigontourist, rồi 2008, cuối cùng 2010.