[Buổi 15][STL][WS] Bài 1: Collection Manager
Collection Manager
Bối cảnh
Một bộ dữ liệu cần được nhìn theo ba góc: lịch sử gốc, tập giá trị phân biệt và tần suất.
Workshop buộc mỗi container đảm nhiệm đúng một trách nhiệm thay vì cố dùng một công cụ cho mọi output.
Yêu cầu
- Đọc n số vào
vectorDATA, đồng thời cập nhậtsetDISTINCT vàmapFREQUENCY. - In DATA theo thứ tự nhập.
- In
DISTINCT count min max. - Trả lời q truy vấn
FREQ x count.
Yêu cầu tổ chức code
Phải có ba representation: vector, set, map với trách nhiệm đúng như đề.
Online Judge chấm output. Với bài nhạy về cấu trúc lời giải, giảng viên có thể review source code để xác nhận học viên luyện đúng năng lực.
Input
Dòng 1 n; dòng 2 n số; dòng 3 q; q dòng x.
Output
1 dòng DATA, 1 dòng DISTINCT, sau đó q dòng FREQ.
Ràng buộc
1≤n,q≤2000, |a[i]|,|x|≤10^9.
Ví dụ 1
Input
5
5 1 5 2 1
3
1
5
3
Output
DATA 5 1 5 2 1
DISTINCT 3 1 5
FREQ 1 2
FREQ 5 2
FREQ 3 0
Giải thích
Vector DATA giữ nguyên 5 1 5 2 1. Set chỉ giữ các giá trị phân biệt nên chứa 1,2,5, vì vậy DISTINCT có count 3, min 1 và max 5. Map tần suất ghi 1→2, 5→2, còn 3 không tồn tại. Do đó ba truy vấn tạo FREQ 1 2, FREQ 5 2, FREQ 3 0.
Ví dụ 2
Input
1
7
2
7
8
Output
DATA 7
DISTINCT 1 7 7
FREQ 7 1
FREQ 8 0
Giải thích
Với một phần tử 7, cả vector, set và map đều chỉ có một đối tượng dữ liệu. Set có size 1 và cả min/max đều bằng 7. Tần suất 7 bằng 1; truy vấn 8 không có nên bằng 0. Ví dụ cho thấy ba container cùng nhìn một dữ liệu nhưng phục vụ ba requirement khác nhau.
Thông tin học tập
- Module: M05
- Buổi: B15
- Loại bài: WORKSHOP
- Độ khó: Medium
- Concepts: vector, set, map, representation, frequency
- Giới hạn kiến thức: B01-B15
- Time limit: 1 second(s)
- Memory limit: 256 MB
- Point: 100
Comments