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] Throttle: Giãn cách tối thiểu giữa 2 request

    Throttle theo khoảng cách tối thiểu

    Server yêu cầu mỗi request cách request được phục vụ trước đó ít nhất G giây. Nếu một request đến quá sớm, nó bị DENY (không cập nhật mốc phục vụ). Request đầu tiên luôn ALLOW.

    Thuật toán

    Giữ last = thời điểm request gần nhất được ALLOW. Request tại t: nếu chưa có last hoặc t - last >= G thì ALLOW và đặt last = t; ngược lại DENY.

    Ví dụ

    G=5: 0→ALLOW(last=0), 3→DENY, 5→ALLOW(last=5), 9→DENY, 10→ALLOW.

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

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

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

      1 ≤ G ≤ 1e6; 1 ≤ Q ≤ 1000; 0 ≤ t ≤ 1e9.

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

      Q dòng ALLOW/DENY.

    Ví dụ:

    Đầu vào:

    5
    5
    0
    3
    5
    9
    10
    

    Đầu ra:

    ALLOW
    DENY
    ALLOW
    DENY
    ALLOW

    Giải thích:

    last cập nhật tại 0,5,10. Các điểm 3,9 đến quá sớm nên DENY.

    Đang tải editor...