[Buổi 3][Chuyên đề 01: Phân tích bài toán & chọn cấu trúc][WS] Bài 1: Trung tâm điều phối tích hợp
Trung tâm điều phối tích hợp
Bối cảnh và bài toán
Một trung tâm tính toán tiếp nhận các job từ nhiều hệ thống nội bộ. Mỗi job có id và priority. Vì một job đã xử lý không được phép gửi lại dưới cùng id, trung tâm phải lưu lịch sử tất cả id từng được chấp nhận. Đồng thời, trong các job còn chờ, trung tâm luôn phải chạy job có độ ưu tiên cao nhất.
Có ba loại lệnh:
ADD id priority: nếuidđã từng được chấp nhận trước đây, kể cả job đó đã chạy xong, inDUPLICATE. Ngược lại inOKvà đưa job vào hàng chờ.SEEN id: inYESnếuidđã từng được chấp nhận, ngược lại inNO.RUN: lấy và xóa job còn chờ cóprioritylớn nhất; nếu hòa, chọnidnhỏ hơn. Inid; nếu không còn job chờ, inEMPTY.
Yêu cầu
Xử lý toàn bộ luồng lệnh, đồng thời bảo đảm đúng cả trạng thái lịch sử và trạng thái đang chờ.
Input
- Dòng 1: số lệnh
q. qdòng tiếp theo là các lệnh.
Output
In phản hồi tương ứng cho mọi lệnh.
Ràng buộc
1 <= q <= 2 * 10^51 <= id, priority <= 10^9
Chấm điểm
| Subtask | Điểm | Điều kiện | Official tests |
|---|---|---|---|
| S1 | 20% | q ≤ 20 | 01–04 |
| S2 | 30% | q ≤ 2 000 | 05–10 |
| S3 | 50% | Không có ràng buộc bổ sung | 11–20 |
Ví dụ 1
Input
8
ADD 5 10
ADD 2 10
SEEN 5
RUN
ADD 2 99
RUN
RUN
SEEN 7
Output
OK
OK
YES
2
DUPLICATE
5
EMPTY
NO
Giải thích. Hai job đầu cùng priority 10, nên id=2 chạy trước do nhỏ hơn. Sau khi job 2 đã chạy xong, lệnh ADD 2 99 vẫn bị từ chối vì id=2 nằm trong lịch sử đã chấp nhận.
Ví dụ 2
Input
4
RUN
SEEN 1
ADD 1 7
SEEN 1
Output
EMPTY
NO
OK
YES
Giải thích. Ban đầu chưa có job nên RUN trả EMPTY và SEEN 1 trả NO. Sau ADD 1 7, lịch sử đã chứa 1, vì vậy lần kiểm tra cuối trả YES.
Thông tin bài tập
| Thuộc tính | Giá trị |
|---|---|
| Mã bài | DSA-M01-B03-WS01 |
| Buổi | B03 |
| Loại bài | WORKSHOP / Baseline Workshop |
| Mức độ khó | Trung bình (Medium) |
| Thời gian làm bài khuyến nghị | 40 phút |
| Time limit | 2 giây |
| Memory limit | 256 MB |
| Tổng điểm | 100 |
| Chuẩn ngôn ngữ tham chiếu | C++17 |
- Yêu cầu ngoài OJ: nộp
Decision Notetheo template.
Nguồn: FULLHOUSE DEV — Self-generated.
Comments