[Buổi 21][Xử lý chuỗi][RDD] Bài 8: Quản lý thư viện
Quản lý thư viện
Bối cảnh
Bài toán được mô tả qua yêu cầu và dữ liệu dưới đây.
Yêu cầu
Thư viện FullHouse Dev muốn quản lý thông tin sách và tình trạng mượn sách của độc giả. Quy tắc quản lý như sau:
Mỗi cuốn sách có các thông tin:
- Tên sách
- Tác giả
- Năm xuất bản
- Mã sách
- Tình trạng (Có sẵn, Đang mượn, Đã đặt trước)
Mỗi độc giả có thể mượn tối đa 3 cuốn sách cùng một lúc.
Hãy nhập thông tin các sách và tình trạng mượn sách của độc giả theo quy tắc trên.
Input
- Dòng đầu ghi số sách (không quá 100 sách)
Mỗi sách ghi trên 4 dòng:
- Tên sách
- Tác giả
- Năm xuất bản
- Mã sách
Dòng tiếp theo ghi số độc giả (không quá 100 độc giả)
- Mỗi độc giả ghi trên 2 dòng:
- Tên độc giả
- Danh sách mã sách đã mượn (tối đa 3 mã sách, cách nhau bởi dấu phẩy)
Output
Ghi ra danh sách sách đã được cập nhật tình trạng gồm các thông tin:
- Mã sách
- Tên sách
- Tác giả
- Năm xuất bản
- Tình trạng
Dòng cuối ghi tổng số sách theo từng tình trạng (Có sẵn, Đang mượn, Đã đặt trước).
Ràng buộc
Đề gốc không nêu ràng buộc riêng.
Ví dụ 1
Input
3
Lap trinh C++
Nguyen Van A
2020
S001
Python co ban
Tran Thi B
2019
S002
Hoc Java
Le Van C
2021
S003
2
Nguyen Van D
S001,S002
Tran Thi E
S003
Output
S001 Lap trinh C++ Nguyen Van A 2020 Dang muon
S002 Python co ban Tran Thi B 2019 Dang muon
S003 Hoc Java Le Van C 2021 Dang muon
Tong so sach: Co san: 0, Dang muon: 3, Da dat truoc: 0
Giải thích ví dụ
- Đầu vào: Lap trinh C++ Nguyen Van A 2020 S001
- Đầu ra: S001 Lap trinh C++ Nguyen Van A 2020 Dang muon
Dòng này hiển thị thông tin chi tiết về sách S001, bao gồm mã sách, tên sách, tác giả, năm xuất bản và tình trạng. Tổng số sách theo từng tình trạng cũng được tính toán và hiển thị ở dòng cuối.
Thông tin học tập
- Buổi: B21
- Concepts: std::string, comma-separated tokenization, map/set, state updates
- Giới hạn kiến thức: B01-B21
- Time limit: 2 seconds
- Memory limit: 64 MB
- Point: 10
Comments