Design a Financial Data Processor that supports two operations: add_transaction(category, amount_cents, timestamp) and get_total(category, start_ts, end_ts). All monetary values are integers representing cents to avoid floating-point error. add_transaction records a transaction under a category at a specific Unix timestamp. get_total returns the sum of all transactions for that category whose timestamps fall in the inclusive range [start_ts, end_ts]. If the category has never been seen or no transactions fall in the range, return 0. The system must be optimized so that each operation runs in O(1) average time for add_transaction and O(1) average time for get_total when the range spans the entire dataset; range queries that must filter by time should be handled efficiently for expected query patterns. You may assume that timestamps are non-negative 32-bit integers and amount_cents is any 32-bit signed integer (negative amounts represent refunds).