JOI 2020 - Merge
Xem PDFCho dãy số nguyên dương \(A=(A_1,A_2,\ldots,A_N)\) có độ dài \(N\) và dãy số nguyên dương \(B=(B_1,B_2,\ldots,B_M)\) có độ dài \(M\). Cả hai dãy đều không giảm, nghĩa là \(A_1 \le A_2 \le \cdots \le A_N\) và \(B_1 \le B_2 \le \cdots \le B_M\).
Dùng thuật toán sau để tạo dãy số nguyên dương \(C=(C_1,C_2,\ldots,C_{N+M})\) có độ dài \(N+M\) từ hai dãy trên:
- Ban đầu, \(C\) là dãy rỗng.
- Nếu cả \(A\) và \(B\) đều rỗng thì kết thúc.
- Nếu chỉ một trong hai dãy \(A\) và \(B\) rỗng, gọi dãy còn lại là \(t\). Nếu cả hai dãy đều không rỗng, gọi dãy có phần tử đầu nhỏ hơn là \(t\). Nếu hai phần tử đầu bằng nhau thì chọn \(t=A\).
- Thêm phần tử đầu của \(t\) vào cuối \(C\).
- Xóa phần tử đầu của \(t\).
- Quay lại bước 2.
Hãy viết chương trình nhận hai dãy số nguyên dương không giảm \(A, B\) và in ra dãy \(C\) được tạo bởi thuật toán trên.
Dữ liệu vào
Dữ liệu được cho từ đầu vào chuẩn theo định dạng sau:
N M
A_1 A_2 ... A_N
B_1 B_2 ... B_M
Dữ liệu ra
In ra \(N+M\) dòng. Dòng thứ \(k\) (\(1 \le k \le N+M\)) chứa \(C_k\).
Ràng buộc
- \(1 \le N \le 500\).
- \(1 \le M \le 500\).
- \(1 \le A_1 \le A_2 \le \cdots \le A_N \le 2000\).
- \(1 \le B_1 \le B_2 \le \cdots \le B_M \le 2000\).
Ví dụ
Ví dụ 1
Input
2 1
1 2
2
Output
1
2
2
Giải thích
Trước khi thực hiện thuật toán, \(A=(1,2)\) và \(B=(2)\). Dãy \(C\) được tạo như sau:
- Phần tử đầu của \(A\) là \(1\), còn phần tử đầu của \(B\) là \(2\). Thêm phần tử đầu của \(A\) vào \(C\) rồi xóa phần tử đó khỏi \(A\).
- Phần tử đầu của cả \(A\) và \(B\) đều bằng \(2\). Theo quy tắc khi hai giá trị bằng nhau, thêm phần tử đầu của \(A\) vào \(C\) rồi xóa phần tử đó khỏi \(A\).
- Dãy \(A\) đã rỗng. Thêm phần tử đầu của \(B\) vào \(C\) rồi xóa phần tử đó khỏi \(B\).
- Cả \(A\) và \(B\) đều rỗng, nên thuật toán kết thúc.
Sau khi thuật toán kết thúc, \(C=(1,2,2)\).
Ví dụ 2
Input
3 8
1 3 8
3 3 4 5 6 7 8 9
Output
1
3
3
3
4
5
6
7
8
8
9
Nguồn
Bản dịch tiếng Việt từ đề gốc tiếng Nhật của Ủy ban Olympic Tin học Nhật Bản. Đề gốc và bản dịch được cung cấp theo giấy phép CC BY-SA 4.0.
Kỳ thi:
- JOI 2020 - Vòng loại 1 - Đợt 1 (21 Tháng 9., 2019)
Bình luận