[Buổi 19][Con trỏ][ADV] Bài 1: Mở rộng mảng động
Mở rộng mảng động
Bối cảnh
Một danh sách raw dynamic array đang có n phần tử và cần nối thêm m phần tử. Không được dùng vector.
Bạn phải cấp phát vùng nhớ mới, copy dữ liệu cũ, giải phóng vùng cũ rồi chuyển ownership.
Yêu cầu
- Đọc n, m; đọc n phần tử ban đầu và m phần tử mới.
- Cấp phát mảng cũ có n phần tử.
- Cấp phát mảng mới kích thước n+m.
- Copy dữ liệu cũ và phần thêm vào.
- delete[] vùng cũ, cập nhật pointer sang vùng mới.
- In toàn bộ n+m phần tử rồi cleanup.
Input
Dòng 1 n m; dòng 2 n số; dòng 3 m số. Dòng có thể rỗng khi số lượng 0.
Output
Một dòng gồm n+m phần tử.
Ràng buộc
0 ≤ n,m, n+m ≤ 5000.
Ví dụ 1
Input
3 2
1 2 3
4 5
Output
1 2 3 4 5
Giải thích
Mảng mới chứa phần cũ 1 2 3 rồi phần thêm 4 5.
Ví dụ 2
Input
0 3
7 8 9
Output
7 8 9
Giải thích
n=0 nên kết quả chỉ gồm phần mới 7 8 9.
Thông tin học tập
- Module: M06
- Buổi: B19
- Loại bài: ADVANCED
- Độ khó: Hard
- Concepts: dynamic arrays, reallocation, copying, ownership, delete[]
- Giới hạn kiến thức: B01-B19
- Time limit: 2 second(s)
- Memory limit: 256 MB
- Point: 100
Comments