[Buổi 23][Struct][WS] Bài 1: Student Record Manager
Student Record Manager
Bối cảnh
Bạn cần xây một bộ quản lý record sinh viên bằng struct, chưa dùng class.
Chương trình hỗ trợ ba loại truy vấn trên cùng danh sách.
Yêu cầu
- Đọc n Student.
- Mỗi truy vấn có dạng:
FIND id,TOP k, hoặcCOUNT g. FIND: inname gpahoặcNOT_FOUND.TOP k: sort bản sao theo GPA giảm, tie id tăng và in id của tối đa k sinh viên trên một dòng.COUNT g: in số sinh viên có GPA >= g.
Yêu cầu tổ chức code
Phải dùng struct Student; chưa dùng class.
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; n dòng student; dòng tiếp q; q truy vấn.
Output
Mỗi truy vấn cho một dòng output.
Ràng buộc
1 ≤ n,q ≤ 1000, 1 ≤ k ≤ n.
Ví dụ 1
Input
4
S1 An 3.5
S2 Binh 3.7
S3 Chi 2.8
S4 Dung 3.7
4
FIND S2
TOP 3
COUNT 3.5
FIND X
Output
Binh 3.70
S2 S4 S1
3
NOT_FOUND
Giải thích
Danh sách có hai GPA 3.7 là S2 và S4. FIND S2 tìm record và in Binh 3.70. TOP 3 sort bản sao theo GPA giảm, tie id tăng nên thứ tự đầu là S2, S4, S1. COUNT 3.5 đếm S1,S2,S4 được 3. FIND X không có ID nên NOT_FOUND.
Ví dụ 2
Input
1
A An 4
3
TOP 1
COUNT 4
FIND A
Output
A
1
An 4.00
Giải thích
Chỉ có một Student A GPA4. TOP 1 trả A. COUNT 4 tính đúng một record đạt ngưỡng. FIND A trả tên và GPA An 4.00. Ví dụ kiểm tra manager hoạt động đúng cả với n=1.
Thông tin học tập
- Module: M07
- Buổi: B23
- Loại bài: WORKSHOP
- Độ khó: Medium
- Concepts: struct, vector, sorting, searching, filtering, aggregation
- Giới hạn kiến thức: B01-B23
- Time limit: 1 second(s)
- Memory limit: 256 MB
- Point: 100
Comments