Design a class FinancialDataProcessor that supports two operations:
add_transaction(timestamp, category, amount) – Record a transaction at the given Unix timestamp (integer seconds since epoch), belonging to the given string category, for the given amount (string like "12.34" or "-5.67"). Amounts are USD with exactly two decimal places and may be negative for refunds. Internally convert every amount to cents (integer) to avoid floating-point rounding.
get_total(category) – Return the running sum of all transactions for that category as a string formatted to two decimal places (e.g. "12.34"). If the category has never been seen, return "0.00".
get_average(category, start_timestamp, end_timestamp) – Return the average amount per transaction (in dollars, not cents) for the given category whose timestamps fall in the inclusive range [start_timestamp, end_timestamp]. Return the result as a string rounded to exactly two decimal places (e.g. "6.67"). If no transactions fall in the range, return "0.00". Division by zero must be avoided.
All operations must be efficient: add_transaction and get_total should run in O(1) average time; get_average must run in O(k) where k is the number of transactions returned by the range query. You may assume that timestamps are non-decreasing within a single category (i.e. transactions for a category arrive in non-decreasing timestamp order).