Fixed window limiter

Write codeMedium30 minStripe style

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
Inputfixed_window([["a", 0], ["a", 1], ["a", 2]], 2, 10)
Output[True, True, False]