Buổi 2: Danh sách kế tiếp
Nhập và xuất danh sách kế tiếp
Nộp bàiPoint: 1
Khởi tạo một danh sách rỗng.
Nhập số lượng phần tử n và lần lượt các giá trị của danh sách.
In danh sách ra màn hình.
Đầu vào (Input):
Dòng 1: Số nguyên n (số phần tử).
Dòng 2: n số nguyên cách nhau bởi dấu cách.
Đầu ra (Output): Danh sách các phần tử đã nhập, cách nhau bởi dấu cách.
Ví dụ:
Input:
3
10 20 30O
Output:
10 20 30
Kiểm tra trạng thái danh sánh
Nộp bàiPoint: 1
Cho danh sách có sức chứa tối đa N=100.
Nhập số phần tử hiện có n.
Sử dụng hàm isEmpty và isFull để kiểm tra.
Đầu vào (Input): Số nguyên n (số phần tử hiện có).
Đầu ra (Output): In "EMPTY" nếu danh sách rỗng, "FULL" nếu đầy, ngược lại in "NORMAL".
Ví dụ:
Input:
100
Output:
FULL
Chèn phần tử vào vị trí bất kỳ
Nộp bàiPoint: 1
Cho danh sách n phần tử.
Chèn giá trị x vào vị trí k (chỉ số mảng từ 0).
Đầu vào (Input):
Dòng 1: Số n và danh sách n phần tử.
Dòng 2: Giá trị x và vị trí k.
Đầu ra (Output): Danh sách mới sau khi chèn. Nếu vị trí k không hợp lệ, in "Location is invalid".
Ví dụ:
Input:
3 1 2 4
3 2
Output:
1 2 3 4
Xóa phần tử tại vị trí k
Nộp bàiPoint: 1
Cho một mảng gồm n số nguyên và một số nguyên k. Hãy xóa phần tử ở vị trí k (chỉ số bắt đầu từ 1).
Giả sử 1 ≤ k ≤ n.
Input:
Dòng 1: số nguyên n (1 ≤ n ≤ 1000).
Dòng 2: n số nguyên.
Dòng 3: số nguyên k.
Output:
Mảng sau khi đã xóa phần tử thứ k.
Ví dụ:
Input:
5
10 20 30 40 50
3
Output:
10 20 40 50
Tìm kiếm vị trí của X
Nộp bàiPoint: 1
Duyệt danh sách để tìm vị trí đầu tiên của phần tử có giá trị x.
Đầu vào (Input):
Dòng 1: Số n và danh sách n phần tử.
Dòng 2: Giá trị x cần tìm.
Đầu ra (Output): Chỉ số i đầu tiên tìm thấy.
Nếu không thấy in -1.
Ví dụ:
Input:
5 1 3 5 7 5
5
Output:
2
Xóa tất cả các phần tử có giá trị X
Nộp bàiPoint: 1
Sử dụng vòng lặp kết hợp hàm xóa và tìm kiếm để loại bỏ mọi phần tử x khỏi danh sách.
Đầu vào (Input): Dòng đầu là n và Danh sách n phần tử; dòng 2 là giá trị x cần xóa sạch.
Đầu ra (Output): Danh sách còn lại sau khi xóa.
Ví dụ:
Input:
5 1 2 1 3 1
1
Output:
2 3
Tìm Giá Trị Lớn Nhất
Nộp bàiPoint: 1
Bạn được cung cấp một lưới kích thước N x N. Ban đầu tất cả các ô đều bằng 0.
Có Q thao tác cập nhật. Mỗi thao tác tăng giá trị các ô trong hình chữ nhật từ (x1, y1) đến (x2, y2) lên K đơn vị.
Sau tất cả các thao tác, hãy tìm giá trị lớn nhất trong toàn bộ lưới.
Input:
Dòng 1: N, Q (1 <= N <= 2000, 1 <= Q <= 10^5).
Q dòng tiếp theo: x1, y1, x2, y2, K (1 <= x1 <= x2 <= N, 1 <= y1 <= y2 <= N, 1 <= K <= 1000).
Output:
- Một số nguyên duy nhất là giá trị lớn nhất trong lưới.
Ví dụ
Input:
5 2
1 1 3 3 10
2 2 4 4 5
Output:
15
Đảo ngược 1 danh sách
Nộp bàiPoint: 1
Đổi chỗ các phần tử trong danh sách kế tiếp để thu được danh sách đảo ngược.
Đầu vào (Input): Danh sách n phần tử.
Đầu ra (Output): Danh sách đã đảo ngược.
Ví dụ:
Input:
3
1 2 3
Output:
3 2 1
Trung bình cộng các phần tử chẵn
Nộp bàiPoint: 1
Duyệt danh sách, lọc ra các phần tử là số chẵn và tính trung bình cộng của chúng.
Đầu vào (Input): Danh sách n phần tử.
Đầu ra (Output): Giá trị trung bình (lấy 2 chữ số thập phân). Nếu không có số chẵn, in 0.00.
Ví dụ:
Input:
4
1 2 3 4
Output:
3.00
Tách chẵn lẻ
Nộp bàiPoint: 1
Từ danh sách ban đầu, tạo ra hai danh sách kế tiếp mới: một danh sách chỉ chứa số chẵn, một danh sách chỉ chứa số lẻ.
Đầu vào (Input): Danh sách n phần tử.
Đầu ra (Output):
Dòng 1: Các số chẵn.
Dòng 2: Các số lẻ.
Ví dụ:
Input:
4
1 2 3 4
Output:
2 4
1 3