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] Burst Handling: Hấp thụ đợt dồn dập

    Xử lý burst bằng Token Bucket

    Token Bucket cho phép burst tối đa C request liên tiếp (thùng đầy lúc đầu), sau đó duy trì ở tốc độ R/giây. In kích thước burst đầu tiên: số request ALLOW liên tiếp tính từ request đầu cho đến request DENY đầu tiên (không tính các request sau đó).

    Thuật toán

    Mô phỏng Token Bucket; đếm số ALLOW liên tiếp từ đầu, dừng đếm ngay khi gặp DENY đầu tiên. Nếu không có DENY, in tổng số ALLOW.

    Ví dụ

    C=3,R=1 với 5 request tại t=0 → 3 ALLOW rồi DENY → burst = 3.

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

      Dòng 1: C R. Dòng 2: Q. Q dòng timestamp không giảm.

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

      1 ≤ C ≤ 1e9; 1 ≤ R ≤ 1e6; 1 ≤ Q ≤ 1000.

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

      Một số nguyên: kích thước burst đầu tiên.

    Ví dụ:

    Đầu vào:

    3 1
    5
    0
    0
    0
    0
    0
    

    Đầu ra:

    3

    Giải thích:

    Thùng đầy 3 → 3 ALLOW liên tiếp, request 4 DENY → burst=3.

    Đang tải editor...