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
Date AuthorLanguageStatus Score
Aug 24, 2026 09:36Victor MerckléVictor MerckléGOgo1.26.2Error
Aug 24, 2026 09:35Victor MerckléVictor MerckléRUSTrust-1.95.0Error
Aug 24, 2026 09:34Victor MerckléVictor MerckléRUSTrust-1.95.0Error
Aug 24, 2026 09:01Victor MerckléVictor MerckléCPPclang++18.1.3Error
Aug 23, 2026 21:53Victor MerckléVictor MerckléCPPclang++18.1.3Error
Aug 23, 2026 21:36Victor MerckléVictor MerckléCPPclang++18.1.3Error
Aug 23, 2026 21:26Victor MerckléVictor MerckléCPPclang++18.1.3Error
Aug 23, 2026 21:19Victor MerckléVictor MerckléCPPclang++18.1.3Success1,943
Aug 23, 2026 21:15Victor MerckléVictor MerckléCPPclang++18.1.3Error
Aug 23, 2026 21:13Victor MerckléVictor MerckléCPPclang++18.1.3Error
Aug 23, 2026 21:07Victor MerckléVictor MerckléCPPclang++18.1.3Error
Aug 23, 2026 21:04Victor MerckléVictor MerckléCPPclang++18.1.3Error
Aug 23, 2026 20:59Victor MerckléVictor MerckléCPPclang++18.1.3Success1,944
Aug 23, 2026 20:52Victor MerckléVictor MerckléCPPclang++18.1.3Error
Aug 23, 2026 20:48Victor MerckléVictor MerckléCPPclang++18.1.3Error
Aug 23, 2026 20:46Victor MerckléVictor MerckléCPPclang++18.1.3Success2,101
Aug 23, 2026 20:45Victor MerckléVictor MerckléCPPclang++18.1.3Error
Aug 23, 2026 20:40Victor MerckléVictor MerckléCPPclang++18.1.3Error
Aug 23, 2026 20:38Victor MerckléVictor MerckléCPPclang++18.1.3Error
Aug 23, 2026 20:36Victor MerckléVictor MerckléCPPclang++18.1.3Error
Aug 23, 2026 20:33Victor MerckléVictor MerckléCPPclang++18.1.3Error
Aug 23, 2026 20:32Victor MerckléVictor MerckléCPPclang++18.1.3Error
Aug 23, 2026 20:27Victor MerckléVictor MerckléCPPclang++18.1.3Error
Aug 23, 2026 20:25Victor MerckléVictor MerckléCPPclang++18.1.3Error
Aug 23, 2026 20:23Victor MerckléVictor MerckléCPPclang++18.1.3Error+8.70 RP
Aug 23, 2026 20:21Victor MerckléVictor MerckléCPPclang++20.1.2Error
Aug 23, 2026 20:16Victor MerckléVictor MerckléCPPclang++18.1.3Error
Aug 23, 2026 20:14Victor MerckléVictor MerckléCPPclang++18.1.3Error
Aug 23, 2026 20:10Victor MerckléVictor MerckléCPPclang++18.1.3Success1,959
Aug 23, 2026 20:01Victor MerckléVictor MerckléCPPclang++18.1.3Error
Aug 23, 2026 19:58Victor MerckléVictor MerckléCPPclang++18.1.3Error
Aug 23, 2026 19:53Victor MerckléVictor MerckléCPPclang++18.1.3Error+17.32 RP
Aug 23, 2026 19:50Victor MerckléVictor MerckléCPPclang++18.1.3Error
Aug 23, 2026 19:46Victor MerckléVictor MerckléCPPclang++18.1.3Error
Aug 23, 2026 19:43Victor MerckléVictor MerckléCPPclang++18.1.3Error+17.21 RP
Aug 23, 2026 19:42Victor MerckléVictor MerckléCPPclang++18.1.3Error
Aug 23, 2026 19:38Victor MerckléVictor MerckléCPPclang++18.1.3Error+8.57 RP
Aug 23, 2026 19:36Victor MerckléVictor MerckléCPPclang++18.1.3Error+11.38 RP
Aug 23, 2026 19:34Victor MerckléVictor MerckléCPPclang++18.1.3Error
Aug 23, 2026 19:32Victor MerckléVictor MerckléCPPclang++18.1.3Error
Aug 23, 2026 19:30Victor MerckléVictor MerckléCPPclang++18.1.3Error+159.69 RP
Aug 23, 2026 19:27Victor MerckléVictor MerckléCPPclang++18.1.3Error+8.00 RP
Aug 23, 2026 19:23Victor MerckléVictor MerckléCPPclang++18.1.3Success2,135
Aug 23, 2026 19:19Victor MerckléVictor MerckléCPPclang++18.1.3Success2,079
Aug 23, 2026 19:12Victor MerckléVictor MerckléCPPclang++18.1.3Success2,503
Aug 23, 2026 19:04Victor MerckléVictor MerckléCPPclang++18.1.3Success1,938
Aug 23, 2026 19:00Victor MerckléVictor MerckléCPPclang++18.1.3Success1,946
Aug 23, 2026 18:56Victor MerckléVictor MerckléCPPclang++18.1.3Success1,950
Aug 23, 2026 18:50Victor MerckléVictor MerckléCPPclang++18.1.3Success1,941
Aug 23, 2026 18:47Victor MerckléVictor MerckléCPPclang++18.1.3Error+47.48 RP
Aug 23, 2026 18:41Victor MerckléVictor MerckléCPPclang++18.1.3Success1,962
Aug 23, 2026 18:38Victor MerckléVictor MerckléCPPclang++18.1.3Error+7.83 RP
Aug 23, 2026 18:35Victor MerckléVictor MerckléCPPclang++18.1.3Error+15.59 RP
Aug 23, 2026 18:31Victor MerckléVictor MerckléCPPclang++18.1.3Success2,083
Aug 23, 2026 18:18Victor MerckléVictor MerckléCPPclang++18.1.3Success2,120
Aug 23, 2026 18:05Victor MerckléVictor MerckléCPPclang++18.1.3Success1,997
Aug 23, 2026 18:00Victor MerckléVictor MerckléCPPclang++18.1.3Success1,965
Aug 23, 2026 17:57Victor MerckléVictor MerckléCPPclang++18.1.3Error+28.33 RP
Aug 23, 2026 17:47Victor MerckléVictor MerckléCPPclang++18.1.3Success1,977
Aug 23, 2026 17:35Victor MerckléVictor MerckléCPPclang++18.1.3Success2,127
Aug 23, 2026 17:17Victor MerckléVictor MerckléCPPclang++18.1.3Success2,001
Aug 23, 2026 17:09Victor MerckléVictor MerckléCPPclang++18.1.3Success2,108
Aug 23, 2026 17:06Victor MerckléVictor MerckléCPPclang++18.1.3Success2,010
Aug 23, 2026 17:04Victor MerckléVictor MerckléCPPclang++18.1.3Success1,977
Aug 23, 2026 16:59Victor MerckléVictor MerckléCPPclang++18.1.3Success1,991
Aug 23, 2026 16:53Victor MerckléVictor MerckléCPPclang++18.1.3Error+12.77 RP
Aug 23, 2026 16:50Victor MerckléVictor MerckléCPPclang++18.1.3Success2,076
Aug 23, 2026 16:47Victor MerckléVictor MerckléCPPclang++18.1.3Success1,995
Aug 23, 2026 16:44Victor MerckléVictor MerckléCPPclang++18.1.3Success1,982
Aug 23, 2026 16:28Victor MerckléVictor MerckléCPPclang++18.1.3Success2,050
Aug 23, 2026 16:23Victor MerckléVictor MerckléCPPclang++18.1.3Success2,251
Aug 23, 2026 16:15Victor MerckléVictor MerckléCPPclang++18.1.3Success2,098
Aug 23, 2026 16:11Victor MerckléVictor MerckléCPPclang++18.1.3Success2,081
Aug 23, 2026 16:07Victor MerckléVictor MerckléCPPclang++18.1.3Success2,061
Aug 23, 2026 16:02Victor MerckléVictor MerckléCPPclang++18.1.3Success2,698
Aug 23, 2026 15:44Victor MerckléVictor MerckléCPPclang++18.1.3Error
Aug 23, 2026 15:41Victor MerckléVictor MerckléCPPclang++18.1.3Success2,069
Aug 23, 2026 15:31Victor MerckléVictor MerckléCPPclang++18.1.3Success2,167
Aug 23, 2026 15:29Victor MerckléVictor MerckléCPPclang++18.1.3Success2,018
Aug 23, 2026 15:25Victor MerckléVictor MerckléCPPclang++18.1.3Success2,028
Aug 23, 2026 15:23Victor MerckléVictor MerckléCPPclang++18.1.3Success2,036
Aug 23, 2026 15:19Victor MerckléVictor MerckléCPPclang++18.1.3Success2,020
Aug 23, 2026 15:17Victor MerckléVictor MerckléCPPclang++18.1.3Success2,039
Aug 23, 2026 15:13Victor MerckléVictor MerckléCPPclang++18.1.3Success2,077
Aug 23, 2026 15:09Victor MerckléVictor MerckléCPPclang++18.1.3Success2,025
Aug 23, 2026 15:06Victor MerckléVictor MerckléCPPclang++18.1.3Success2,011
Aug 23, 2026 15:04Victor MerckléVictor MerckléCPPclang++18.1.3Success2,013
Aug 23, 2026 15:02Victor MerckléVictor MerckléCPPclang++18.1.3Success2,025
Aug 23, 2026 15:01Victor MerckléVictor MerckléCPPclang++18.1.3Success2,136
Aug 23, 2026 14:59Victor MerckléVictor MerckléCPPclang++18.1.3Success2,028
Aug 23, 2026 14:57Victor MerckléVictor MerckléCPPclang++18.1.3Success2,031
Aug 23, 2026 14:56Victor MerckléVictor MerckléCPPclang++18.1.3Success2,027
Aug 23, 2026 14:53Victor MerckléVictor MerckléCPPclang++18.1.3Success2,131
Aug 23, 2026 14:51Victor MerckléVictor MerckléCPPclang++18.1.3Success2,047
Aug 23, 2026 14:50Victor MerckléVictor MerckléCPPclang++18.1.3Success2,023
Aug 23, 2026 14:47Victor MerckléVictor MerckléCPPclang++18.1.3Success2,257
Aug 23, 2026 14:44Victor MerckléVictor MerckléCPPclang++18.1.3Success2,029
Aug 23, 2026 14:43Victor MerckléVictor MerckléCPPclang++18.1.3Success2,050
Aug 23, 2026 14:39Victor MerckléVictor MerckléCPPclang++18.1.3Success2,028
Aug 23, 2026 14:35Victor MerckléVictor MerckléCPPclang++18.1.3Success2,546