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] Semaphore - Giá trị sau chuỗi P/V

    Semaphore đếm

    Semaphore đếm giữ một số nguyên không âm là số tài nguyên còn rảnh.

    • Thao tác V (signal/up): tăng giá trị thêm 1 (trả tài nguyên).
    • Thao tác P (wait/down): nếu giá trị > 0 thì giảm 1 (chiếm tài nguyên); nếu giá trị = 0 thì bị chặn, thao tác P bỏ qua (không làm gì) trong mô hình mô phỏng này.

    Cho giá trị khởi tạo s0 và một chuỗi thao tác gồm các ký tự P và V. In giá trị cuối cùng của semaphore.

    Ví dụ

    s0=1, chuỗi PPV → P (1→0), P (0, bị chặn, giữ 0), V (0→1) ⇒ 1.

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

      Dòng đầu: số nguyên s0. Dòng thứ hai: một chuỗi gồm các ký tự P/V (có thể rỗng).

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

      0 ≤ s0 ≤ 10^6, độ dài chuỗi ≤ 10^6.

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

      Một số nguyên: giá trị semaphore cuối cùng.

    Ví dụ:

    Đầu vào:

    1
    PPV
    

    Đầu ra:

    1

    Giải thích:

    P:1→0, P:bị chặn giữ 0, V:0→1 ⇒ 1.

    Đang tải editor...