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] Pipeline - Thông lượng nhiều tầng cmd1|cmd2|cmd3

    Pipeline nhiều tầng: tầng nghẽn cổ chai

    Một pipeline S1 | S2 | ... | Sm xử lý D đơn vị dữ liệu. Tầng Si xử lý tối đa r[i] đơn vị/tick. Giữa hai tầng có pipe sức chứa vô hạn (bỏ qua giới hạn buffer).

    Mỗi tick, đồng thời: mỗi tầng Si lấy từ đầu vào (đầu ra tầng trước; tầng 1 lấy từ nguồn còn D) tối đa r[i] đơn vị nhưng không quá lượng sẵn có tại đầu tick, rồi đẩy sang đầu vào tầng sau. Dữ liệu rời tầng cuối coi như hoàn tất.

    Tính số tick để toàn bộ D đơn vị ra khỏi tầng cuối Sm.

    Ví dụ

    D=5, tốc độ [2,2] → cả hai tầng 2/tick; mô phỏng tới khi 5 đơn vị ra khỏi tầng cuối.

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

      Dòng đầu: D m. Dòng hai: m số nguyên r[i].

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

      1 ≤ D ≤ 10^5, 1 ≤ m ≤ 50, 1 ≤ r[i] ≤ 10^5.

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

      Một số nguyên: số tick.

    Ví dụ:

    Đầu vào:

    5 2
    2 2
    

    Đầu ra:

    4

    Giải thích:

    Hai tầng tốc độ 2/tick; dữ liệu chảy qua tầng 1 rồi tầng 2, mô phỏng đồng thời tới khi 5 đơn vị ra khỏi tầng cuối.

    Đang tải editor...