Parse JSON Sergey Svistunov

Compute the total amount of non-canceled external USD transactions from a stream of JSON records as fast as possible.

Input: 1 000 000 JSON records on STDIN, one per line. Each record has the following structure:

{
    "user_id": 0,
    "currency": "USD",
    "transactions": [
        {
            "amount": 0,
            "to_user_id": 0,
            "canceled": false
        }
    ]
}
Field Constraints
user_id Integer, max 10 000
currency One of "GBP", "USD", "RUB", "JPY", "CHF"
transactions Array, max 10 elements
amount Integer, max 1000
canceled Boolean; may be omitted when false

Field order is not guaranteed within any object.

Output: The total amount of all transactions where:

  • record.currency == "USD"
  • transaction.to_user_id != record.user_id (external)
  • transaction.canceled is false or absent

A generator is a program that produces test data and expected results for a challenge. Each time a solution is checked, the generator runs fresh - producing unique, unpredictable input.

Custom generators let you challenge other participants' solutions with your own test cases. If someone's solution fails on your generator's input, it exposes weaknesses in their approach. Writing good generators requires deep understanding of the problem - you need to craft edge cases, stress tests, and tricky inputs that push solutions to their limits.

Log in to create generators.