Giới hạn tối đa N request trong bất kỳ khoảng W giây trượt (t-W, t]. Lưu log timestamp các request đã ALLOW. Với request tại t: loại bỏ các log có timestamp <= t - W (đã ra ngoài cửa sổ), rồi nếu số log còn lại < N thì ALLOW (thêm t vào log), ngược lại DENY.
Dùng hàng đợi timestamp đã ALLOW. Cửa sổ hợp lệ là (t-W, t]. Pop phần tử <= t-W.
N=2, W=10: 0→ALLOW,5→ALLOW,9→DENY(đã 2),11→ALLOW(0 đã rời, còn 5).
Dòng 1: N W. Dòng 2: Q. Q dòng timestamp không giảm.
1 ≤ N ≤ 1000; 1 ≤ W ≤ 1e6; 1 ≤ Q ≤ 2000.
Q dòng ALLOW/DENY.
Ví dụ:
Đầu vào:
2 10
4
0
5
9
11
Đầu ra:
ALLOW
ALLOW
DENY
ALLOW
Giải thích:
Đang tải editor...