[Buổi 23][Struct][HW] Bài 3: Search Student by ID
Search Student by ID
Bối cảnh
Một danh sách sinh viên được lưu dưới dạng struct Student {id,name,gpa} với ID duy nhất. Hệ thống nhận một target ID và cần tìm tuyến tính record tương ứng. Bài Easy nhằm củng cố việc truyền/đọc field của record trong một vòng lặp, không cần map vì mục tiêu hiện tại là struct chứ không tối ưu truy vấn. Nếu tìm thấy phải format GPA hai chữ số; nếu hết danh sách vẫn chưa thấy thì in NOT_FOUND.
Ngoài kết quả số học, bài còn kiểm tra việc mỗi thực thể được giữ dưới dạng một record nhất quán: các field phải luôn đi cùng nhau qua bước đọc, lọc, thống kê hoặc sắp xếp. Khi thiết kế lời giải, nên xác định rõ record gốc và record/aggregate suy ra để tránh dùng nhiều mảng song song làm lệch dữ liệu.
Yêu cầu
- Đọc n Student và một id cần tìm.
- Tìm tuyến tính.
- Nếu thấy in
name gpa; nếu khôngNOT_FOUND.
Input
Dòng 1 n; n dòng id name gpa; dòng cuối target id.
Output
Một dòng.
Ràng buộc
1 ≤ n ≤ 5000.
Ví dụ 1
Input
3
S1 An 3
S2 Binh 3.5
S3 Chi 4
S2
Output
Binh 3.50
Giải thích
Target là S2. Duyệt S1 không khớp, đến S2 thì ID bằng target nên in field name Binh và GPA3.5 với hai chữ số thành 3.50. Không cần xét S3 sau khi đã tìm thấy.
Ví dụ này đồng thời kiểm tra rằng các field của cùng một record không bị lệch khi duyệt hoặc sắp xếp. Quy tắc tie-break/giữ thứ tự chỉ được áp dụng sau khi dữ liệu cần so sánh đã được xác định đúng, nên kết quả trên là hệ quả trực tiếp của state record sau xử lý.
Ví dụ 2
Input
1
A A 0
A
Output
A 0.00
Giải thích
Danh sách chỉ có record A và target cũng là A, nên tìm thấy ngay ở phần tử đầu. GPA0 được format thành 0.00, output A 0.00.
Ví dụ này đồng thời kiểm tra rằng các field của cùng một record không bị lệch khi duyệt hoặc sắp xếp. Quy tắc tie-break/giữ thứ tự chỉ được áp dụng sau khi dữ liệu cần so sánh đã được xác định đúng, nên kết quả trên là hệ quả trực tiếp của state record sau xử lý.
Thông tin học tập
- Module: M07
- Buổi: B23
- Loại bài: HOMEWORK
- Độ khó: Easy
- Concepts: struct, vector, linear search
- Giới hạn kiến thức: B01-B23
- Time limit: 1 second(s)
- Memory limit: 256 MB
- Point: 100
Comments