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

    solution

    Đề bài: [Lập trình Web & Backend] Concurrency Limit: Giới hạn số request đồng thời

    Giới hạn số request đồng thời

    Server chỉ phục vụ tối đa K request đồng thời. Sự kiện gồm S (start - một request bắt đầu) và E (end - một request kết thúc). Khi gặp S: nếu số đang chạy < K thì ALLOW (số đang chạy +1), ngược lại REJECT. Khi gặp E: số đang chạy giảm 1 (chỉ giảm nếu đang > 0) và in OK.

    Thuật toán

    Giữ biến running. Xử lý từng sự kiện theo thứ tự.

    Ví dụ

    K=1: S→ALLOW(running=1), S→REJECT, E→OK(running=0), S→ALLOW.

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

      Dòng 1: K. Dòng 2: Q. Q dòng: mỗi dòng S hoặc E.

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

      1 ≤ K ≤ 1e6; 1 ≤ Q ≤ 2000.

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

      Q dòng: với S in ALLOW/REJECT, với E in OK.

    Ví dụ:

    Đầu vào:

    1
    4
    S
    S
    E
    S
    

    Đầu ra:

    ALLOW
    REJECT
    OK
    ALLOW

    Giải thích:

    S→ALLOW(running=1); S→REJECT (đã đủ K=1); E→OK(running=0); S→ALLOW.

    Đang tải editor...