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).
Dòng đầu là số M. M dòng tiếp theo, mỗi dòng là O hoặc C k.
1 ≤ M ≤ 100000; 0 ≤ k ≤ 100000.
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:
Đang tải editor...