Fixed window limiter
Your task
Implement a per-key fixed-window counter rate limiter. Given a list of (key, ts) requests in non-decreasing ts order (integer seconds), a 'limit', and a 'window' size in seconds, each request maps to the fixed window index ts // window. A request is allowed if, for its key and its window index, fewer than 'limit' requests have already been allowed; allowed requests increment that key+window counter. Windows are independent and counters do not carry over. Return a list of booleans aligned to the input. Empty input returns an empty list.
Examples
fixed_window(requests: list[tuple], limit: int, window: int) -> list[bool]Example 1
Input
fixed_window([["a", 0], ["a", 1], ["a", 2]], 2, 10)Output
[True, True, False]