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
Sep 8, 2026 12:18Victor MerckléVictor MerckléCPPg++14.2.0Success1,862+247.96 RP
Sep 8, 2026 12:11Victor MerckléVictor MerckléCPPg++14.2.0Success1,930
Sep 8, 2026 12:03Victor MerckléVictor MerckléCPPg++14.2.0Success1,958
Sep 8, 2026 12:01Victor MerckléVictor MerckléCPPg++14.2.0Success2,455
Sep 8, 2026 11:57Victor MerckléVictor MerckléCPPg++14.2.0Success1,969
Sep 8, 2026 11:52Victor MerckléVictor MerckléCPPg++14.2.0Success1,915
Sep 8, 2026 11:47Victor MerckléVictor MerckléCPPg++14.2.0Success2,128
Sep 8, 2026 11:47Victor MerckléVictor MerckléCPPg++14.2.0Success1,914
Sep 8, 2026 11:41Victor MerckléVictor MerckléCPPg++14.2.0Success1,906+43.86 RP
Sep 8, 2026 11:39Victor MerckléVictor MerckléCPPg++14.2.0Success2,047
Sep 8, 2026 11:31Victor MerckléVictor MerckléCPPg++14.2.0Success1,914
Sep 8, 2026 11:30Victor MerckléVictor MerckléCPPg++14.2.0Success2,025
Sep 8, 2026 11:26Victor MerckléVictor MerckléCPPg++14.2.0Success1,914+65.10 RP
Sep 8, 2026 11:23Victor MerckléVictor MerckléCPPg++14.2.0Success1,984
Sep 8, 2026 11:21Victor MerckléVictor MerckléCPPg++14.2.0Success2,056
Sep 8, 2026 11:17Victor MerckléVictor MerckléCPPg++14.2.0Success2,036
Sep 8, 2026 11:13Victor MerckléVictor MerckléCPPg++14.2.0Success1,971
Sep 8, 2026 11:12Victor MerckléVictor MerckléCPPg++14.2.0Success2,117
Sep 8, 2026 11:09Victor MerckléVictor MerckléCPPg++14.2.0Success1,959
Sep 8, 2026 10:56Victor MerckléVictor MerckléCPPg++14.2.0Success2,029
Sep 8, 2026 10:50Victor MerckléVictor MerckléCPPg++14.2.0Success1,994
Sep 8, 2026 10:49Victor MerckléVictor MerckléCPPg++14.2.0Success1,992
Sep 8, 2026 10:47Victor MerckléVictor MerckléCPPg++14.2.0Success2,036
Sep 8, 2026 10:44Victor MerckléVictor MerckléCPPg++14.2.0Success2,036
Sep 8, 2026 10:30Victor MerckléVictor MerckléCPPg++14.2.0Success2,021
Sep 8, 2026 10:22Victor MerckléVictor MerckléCPPg++14.2.0Success1,968
Sep 8, 2026 10:18Victor MerckléVictor MerckléCPPg++14.2.0Success1,976
Sep 8, 2026 10:13Victor MerckléVictor MerckléCPPg++14.2.0Success1,969
Sep 8, 2026 10:06Victor MerckléVictor MerckléCPPg++14.2.0Success2,123
Sep 8, 2026 10:05Victor MerckléVictor MerckléCPPg++14.2.0Success1,977
Sep 8, 2026 09:48Victor MerckléVictor MerckléCPPg++14.2.0Success2,039
Sep 8, 2026 09:41Victor MerckléVictor MerckléCPPg++14.2.0Success2,286
Sep 8, 2026 09:32Victor MerckléVictor MerckléCPPg++14.2.0Success2,193
Sep 8, 2026 09:28Victor MerckléVictor MerckléCPPg++14.2.0Success1,990
Sep 8, 2026 09:28Victor MerckléVictor MerckléCPPg++14.2.0Success2,550
Sep 8, 2026 09:15Victor MerckléVictor MerckléCPPg++14.2.0Success1,995
Sep 8, 2026 09:10Victor MerckléVictor MerckléCPPg++14.2.0Success2,190
Sep 8, 2026 09:05Victor MerckléVictor MerckléCPPg++14.2.0Success2,015
Sep 8, 2026 09:02Victor MerckléVictor MerckléCPPg++14.2.0Success2,303
Sep 8, 2026 08:59Victor MerckléVictor MerckléCPPg++14.2.0Success2,022
Sep 8, 2026 08:54Victor MerckléVictor MerckléCPPg++14.2.0Success2,036
Sep 8, 2026 08:29Victor MerckléVictor MerckléCPPg++14.2.0Success2,047
Sep 8, 2026 08:26Victor MerckléVictor MerckléCPPg++14.2.0Success2,039
Sep 8, 2026 08:16Victor MerckléVictor MerckléCPPg++14.2.0Success2,030
Sep 8, 2026 08:10Victor MerckléVictor MerckléCPPg++14.2.0Success2,033
Sep 8, 2026 08:04Victor MerckléVictor MerckléCPPg++14.2.0Success2,043
Sep 8, 2026 07:32Victor MerckléVictor MerckléCPPg++14.2.0Success2,046
Sep 8, 2026 07:28Victor MerckléVictor MerckléCPPg++14.2.0Success2,057
Sep 8, 2026 07:23Victor MerckléVictor MerckléCPPg++14.2.0Success1,928
Sep 8, 2026 07:20Victor MerckléVictor MerckléCPPg++14.2.0Success1,971
Sep 8, 2026 07:17Victor MerckléVictor MerckléCPPg++14.2.0Success1,989
Sep 8, 2026 07:14Victor MerckléVictor MerckléCPPg++14.2.0Success2,142
Sep 8, 2026 07:07Victor MerckléVictor MerckléCPPg++14.2.0Success2,155
Sep 8, 2026 06:37Victor MerckléVictor MerckléCPPg++14.2.0Success1,936
Sep 8, 2026 06:29Victor MerckléVictor MerckléCPPg++14.2.0Success1,926+21.52 RP
Sep 8, 2026 06:24Victor MerckléVictor MerckléCPPg++14.2.0Success2,112
Sep 4, 2026 15:37Victor MerckléVictor MerckléCPPg++14.2.0Success1,930
Sep 4, 2026 09:26Victor MerckléVictor MerckléCPPclang++18.1.3Error
Sep 4, 2026 07:07Victor MerckléVictor MerckléCPPclang++18.1.3Error
Aug 24, 2026 17:20Haha ExpertHaha ExpertCSHARP10.0.11Success138,363
Aug 24, 2026 09:54Victor MerckléVictor MerckléZIG0.16.0Error
Aug 24, 2026 09:41Victor MerckléVictor MerckléCSHARP10.0.7Error
Aug 24, 2026 09:38Victor MerckléVictor MerckléGOgo1.26.2Error
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