[Buổi 18][Heap & Hàng đợi ưu tiên][HW] Bài 3: Bảng ưu tiên cập nhật lười


LÀM BÀI

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

Author:
Problem types

Bảng ưu tiên cập nhật lười

Bối cảnh và bài toán

Một hệ thống giữ nhiều task theo id, mỗi task hiện tại có một priority. Lệnh SET id p tạo hoặc cập nhật priority; REMOVE id xóa task nếu tồn tại; TOP cần trả task priority lớn nhất, nếu hòa chọn ID nhỏ nhất. Hệ thống không có thao tác sửa/xóa phần tử tùy ý trực tiếp trong heap.

Yêu cầu

Xử lý toàn bộ lệnh và trả lời TOP.

Input

  • Dòng 1: q.
  • q dòng, mỗi dòng là SET id p, REMOVE id, hoặc TOP.

Output

Với mỗi TOP, in id priority của task tốt nhất hoặc EMPTY.

Ràng buộc

  • 1 <= q <= 2 * 10^5
  • 1 <= id, p <= 10^9

Chấm điểm

Subtask Điểm Điều kiện Official tests
S1 20% q <= 100 01–04
S2 30% q <= 5000 05–10
S3 50% Không có ràng buộc bổ sung 11–20

Ví dụ 1

Input

7
SET 10 5
SET 20 7
TOP
SET 10 9
TOP
REMOVE 10
TOP

Output

20 7
10 9
20 7

Giải thích. Entry cũ (10,5) vẫn có thể còn trong heap nhưng không còn hợp lệ sau SET.

Ví dụ 2

Input

3
TOP
SET 1 3
TOP

Output

EMPTY
1 3

Giải thích. TOP đầu tiên khi chưa có task.

Thông tin bài tập

Thuộc tính Giá trị
Mã bài DSA-M05-B18-HW03
Buổi B18
Loại bài HOMEWORK
Mức độ khó Trung bình (Medium)
Thời gian làm bài khuyến nghị 55 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++11 trở lên

Nguồn: FULLHOUSE DEV – Self-generated.


Comments

There are no comments at the moment.

Zalo