Các lượt nộp
    Danh sách bài
    Trang chủ
    Báo lỗi

    solution

    Đề bài: [Hệ điều hành Unix] Message Queue - Hàng đợi ưu tiên

    Hàng đợi thông điệp theo độ ưu tiên

    Một số hệ thống IPC cho phép gắn độ ưu tiên cho thông điệp. Khi recv, thông điệp có độ ưu tiên lớn nhất được lấy trước; nếu bằng ưu tiên thì lấy thông điệp gửi trước (ổn định theo thứ tự FIFO).

    Thao tác:

    • S p x — gửi thông điệp mã x với độ ưu tiên p.
    • R — nhận thông điệp ưu tiên cao nhất, in mã x.

    Đảm bảo mọi R đều có thông điệp.

    Ví dụ

    S 1 100, S 3 200, S 1 101, R, R → in 200 (ưu tiên 3), rồi 100 (ưu tiên 1, gửi trước 101).

    • Định dạng đầu vào:

      Dòng đầu: n. n dòng: S p x hoặc R.

    • Ràng buộc đầu vào:

      1 ≤ n ≤ 2000, 0 ≤ p ≤ 10^9, 0 ≤ x ≤ 10^9.

    • Định dạng đầu ra:

      Mỗi R in mã thông điệp nhận được trên một dòng.

    Ví dụ:

    Đầu vào:

    5
    S 1 100
    S 3 200
    S 1 101
    R
    R
    

    Đầu ra:

    200
    100

    Giải thích:

    Ưu tiên 3 (mã 200) ra trước; rồi ưu tiên 1 gửi sớm hơn (mã 100).

    Đang tải editor...