[Buổi 23][Struct][Lab] Bài 2: Sort & Filter Records
Sort & Filter Records
Bối cảnh
Một danh sách sinh viên cần được xếp theo GPA giảm dần; nếu bằng GPA thì mã tăng dần.
Sau khi sort, chỉ in sinh viên có GPA đạt ngưỡng k.
Yêu cầu
- Đọc n, k và n Student.
- Lưu bằng
vector<Student>. - Sort GPA giảm; tie id tăng.
- In các record có
gpa >= k; nếu không có, inNONE.
Yêu cầu tổ chức code
Phải dùng struct Student và vector<Student>.
Online Judge chấm output. Giảng viên có thể review thêm cấu trúc code để xác nhận học viên luyện đúng kỹ năng OOP của buổi.
Input
Dòng 1: n k. n dòng tiếp: id name gpa.
Output
Mỗi record đạt chuẩn trên một dòng: id name gpa(2 decimals) hoặc NONE.
Ràng buộc
1 ≤ n ≤ 2000, 0 ≤ gpa,k ≤ 4.
Ví dụ 1
Input
4 3
S2 B 3.5
S1 A 3.5
S3 C 2.9
S4 D 4
Output
S4 D 4.00
S1 A 3.50
S2 B 3.50
Giải thích
Bốn Student được sort theo GPA giảm. S4 có 4.0 nên đứng đầu. S1 và S2 cùng 3.5, comparator dùng id tăng nên S1 đứng trước S2. S3 chỉ 2.9, dưới ngưỡng k=3 nên bị lọc. Vì vậy output lần lượt là S4, S1, S2 với GPA hai chữ số.
Ví dụ 2
Input
2 4
A An 3.9
B Binh 3.8
Output
NONE
Giải thích
Ngưỡng k=4 nhưng hai GPA là 3.9 và 3.8. Sau sort thứ tự có thể xác định, nhưng bước filter không giữ record nào. Khi danh sách kết quả rỗng, đề yêu cầu in NONE, nên output chỉ có đúng từ này.
Thông tin học tập
- Module: M07
- Buổi: B23
- Loại bài: LAB
- Độ khó: Medium
- Concepts: struct, vector, sort, comparator, tie-break, filtering
- Giới hạn kiến thức: B01-B23
- Time limit: 1 second(s)
- Memory limit: 256 MB
- Point: 100
Comments