[Buổi 23][Struct][WS] Bài 1: Student Record Manager


LÀM BÀI

Points: 100
Time limit: 1.0s
Memory limit: 256M

Author:
Problem types
Allowed languages
C++

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

  1. Đọc n Student.
  2. Mỗi truy vấn có dạng: FIND id, TOP k, hoặc COUNT g.
  3. FIND: in name gpa hoặc NOT_FOUND.
  4. 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.
  5. 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

There are no comments at the moment.

Zalo