Mỗi IP có bộ đếm riêng theo Fixed Window reset (cửa sổ độ dài W, tối đa N/cửa sổ/IP). Cho danh sách request gồm timestamp và IP, in ALLOW/DENY cho từng request.
Dùng map ip -> {win, count}. Với mỗi request, tính cửa sổ của t; nếu khác cửa sổ đã lưu của IP đó thì reset; áp dụng giới hạn N.
W=10, N=1: (0,A) ALLOW, (1,A) DENY, (1,B) ALLOW.
Dòng 1: W N. Dòng 2: Q. Q dòng: t ip (timestamp và chuỗi IP cách nhau dấu cách).
1 ≤ W ≤ 1e6; 1 ≤ N ≤ 1000; 1 ≤ Q ≤ 2000; IP là chuỗi không khoảng trắng. timestamp không giảm.
Q dòng ALLOW/DENY.
Ví dụ:
Đầu vào:
10 1
3
0 A
1 A
1 B
Đầu ra:
ALLOW
DENY
ALLOW
Giải thích:
Đang tải editor...