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] Đếm file descriptor còn mở

    Mỗi tiến trình có một bảng file descriptor (fd). Các fd chuẩn là 0 (stdin), 1 (stdout), 2 (stderr). Khi mở thêm file, kernel cấp fd nhỏ nhất còn trống; khi close(fd) thì fd đó được giải phóng.

    Mô phỏng: ban đầu fd 0,1,2 đang mở. Dòng đầu là số thao tác M. Mỗi thao tác là O (open: mở fd nhỏ nhất còn trống) hoặc C k (close fd k nếu đang mở). Sau tất cả thao tác, in số fd đang mở.

    Ví dụ I/O:

    Input:  3\nO\nO\nC 3\n
    Output: 4
    

    (mở fd 3, mở fd 4, đóng fd 3 → còn mở 0,1,2,4 = 4 fd).

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

      Dòng đầu là số M. M dòng tiếp theo, mỗi dòng là O hoặc C k.

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

      1 ≤ M ≤ 100000; 0 ≤ k ≤ 100000.

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

      Một số nguyên: số fd đang mở sau khi thực hiện hết thao tác.

    Ví dụ:

    Đầu vào:

    3
    O
    O
    C 3
    

    Đầu ra:

    4

    Giải thích:

    Mở fd 3, mở fd 4, đóng fd 3; còn lại 0,1,2,4 = 4 fd.

    Đang tải editor...