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 17, 2026 17:50Tomislav TunkovicTomislav TunkovicGOgo1.26.2Error
Aug 17, 2026 17:25Tomislav TunkovicTomislav TunkovicCSHARP9.0.15Error
Aug 17, 2026 17:20Tomislav TunkovicTomislav TunkovicGOgo1.26.2Error
Aug 17, 2026 16:39Tomislav TunkovicTomislav TunkovicZIG0.15.1Error+46.77 RP
Aug 17, 2026 13:12Tomislav TunkovicTomislav TunkovicCSHARP9.0.15Error
Aug 17, 2026 13:07Tomislav TunkovicTomislav TunkovicGOgo1.26.2Error
Aug 16, 2026 23:11Tomislav TunkovicTomislav TunkovicGOgo1.26.2Error
Aug 16, 2026 23:10Tomislav TunkovicTomislav TunkovicZIG0.15.1Error
Aug 16, 2026 23:09Tomislav TunkovicTomislav TunkovicRUSTrust-1.95.0Error+5.00 RP
Aug 16, 2026 19:09marko1597marko1597CPPclang++20.1.2Error
Aug 16, 2026 19:09marko1597marko1597CPPclang++20.1.2Error
Aug 16, 2026 19:06marko1597marko1597CPPclang++19.1.1Error
Aug 16, 2026 19:06marko1597marko1597CPPclang++18.1.8Error
Aug 16, 2026 18:54marko1597marko1597CPPclang++20.1.2Error
Aug 16, 2026 18:54marko1597marko1597CPPclang++20.1.2Error+109.29 RP
Aug 16, 2026 18:52marko1597marko1597CPPclang++16.0.6Error
Aug 16, 2026 18:52marko1597marko1597CPPclang++18.1.8Error+18.73 RP
Aug 16, 2026 18:52marko1597marko1597CPPclang++19.1.1Error
Aug 16, 2026 18:47marko1597marko1597CPPclang++17.0.6Error
Aug 16, 2026 18:47marko1597marko1597CPPclang++20.1.2Error+205.65 RP
Aug 16, 2026 18:40marko1597marko1597CPPclang++20.1.2Error
Aug 16, 2026 18:40marko1597marko1597CPPclang++20.1.2Error
Aug 16, 2026 18:40marko1597marko1597CPPclang++20.1.2Error
Aug 16, 2026 18:19marko1597marko1597CPPclang++20.1.2Success106,445
Aug 16, 2026 17:59marko1597marko1597CPPclang++17.0.6Error+2.05 RP
Aug 16, 2026 17:59marko1597marko1597CPPclang++20.1.2Error
Aug 16, 2026 17:59marko1597marko1597CPPclang++20.1.2Error
Aug 16, 2026 15:33marko1597marko1597CPPg++14.2.0Success5,009
Aug 16, 2026 15:33marko1597marko1597CPPclang++17.0.6Error
Aug 16, 2026 15:33marko1597marko1597CPPclang++20.1.2Error
Aug 16, 2026 15:21marko1597marko1597CPPclang++20.1.2Error
Aug 16, 2026 15:21marko1597marko1597CPPclang++20.1.2Error
Aug 16, 2026 15:21marko1597marko1597CPPclang++20.1.2Error
Aug 16, 2026 15:13marko1597marko1597CPPclang++20.1.2Success3,578
Aug 16, 2026 13:18marko1597marko1597CPPclang++20.1.2Error
Aug 16, 2026 12:55marko1597marko1597CPPclang++20.1.2Error
Aug 16, 2026 12:42marko1597marko1597CPPclang++20.1.2Success73,802
Aug 16, 2026 12:28marko1597marko1597CPPclang++20.1.2Error
Aug 16, 2026 12:07marko1597marko1597CPPclang++20.1.2Error+57.47 RP
Aug 16, 2026 11:53marko1597marko1597CPPclang++20.1.2Success169,978
Aug 16, 2026 11:31marko1597marko1597CPPclang++20.1.2Error
Aug 16, 2026 11:10marko1597marko1597CPPclang++20.1.2Error+52.57 RP
Aug 16, 2026 10:53marko1597marko1597CPPclang++20.1.2Error
Aug 16, 2026 10:40marko1597marko1597CPPclang++20.1.2Success3,515
Aug 16, 2026 09:59marko1597marko1597CPPclang++20.1.2Error+37.82 RP
Aug 16, 2026 09:38marko1597marko1597CPPclang++20.1.2Error+6.52 RP
Aug 16, 2026 09:04marko1597marko1597CPPclang++20.1.2Success3,656
Aug 16, 2026 08:29marko1597marko1597CPPclang++20.1.2Error
Aug 16, 2026 07:55marko1597marko1597CPPclang++17.0.6Error
Aug 16, 2026 07:55marko1597marko1597CPPclang++19.1.1Error
Aug 16, 2026 07:31marko1597marko1597CPPclang++20.1.2Error
Aug 16, 2026 07:09marko1597marko1597CPPclang++20.1.2Error+12.04 RP
Aug 16, 2026 07:09marko1597marko1597CPPg++13.3.0Success3,665
Aug 16, 2026 07:09marko1597marko1597CPPg++14.2.0Success3,640
Aug 16, 2026 00:03marko1597marko1597CPPclang++18.1.3Error+27.89 RP
Aug 15, 2026 23:40marko1597marko1597CPPclang++18.1.3Success165,052
Aug 15, 2026 23:08marko1597marko1597CPPclang++18.1.3Error+93.36 RP
Aug 15, 2026 22:37marko1597marko1597CPPclang++18.1.3Success148,379
Aug 15, 2026 22:09marko1597marko1597CPPclang++18.1.3Error+56.08 RP
Aug 15, 2026 21:57marko1597marko1597CPPclang++18.1.3Success3,665
Aug 15, 2026 19:03Tomislav TunkovicTomislav TunkovicCPPclang++14.0.6Error+51.30 RP
Aug 15, 2026 18:57Tomislav TunkovicTomislav TunkovicCPPclang++14.0.6Error+132.85 RP
Aug 15, 2026 18:53Tomislav TunkovicTomislav TunkovicCPPclang++14.0.6Error+22.74 RP
Aug 15, 2026 18:47Tomislav TunkovicTomislav TunkovicCPPclang++14.0.6Error+69.45 RP
Aug 15, 2026 18:37Tomislav TunkovicTomislav TunkovicCPPclang++14.0.6Error+144.83 RP
Aug 15, 2026 18:35Tomislav TunkovicTomislav TunkovicCPPclang++14.0.6Error
Aug 15, 2026 18:06Tomislav TunkovicTomislav TunkovicCPPclang++15.0.7Error
Aug 15, 2026 14:05Tomislav TunkovicTomislav TunkovicCPPclang++14.0.6Error
Aug 15, 2026 13:54Tomislav TunkovicTomislav TunkovicCPPclang++18.1.3Error
Aug 15, 2026 13:40Tomislav TunkovicTomislav TunkovicCPPclang++14.0.6Error+238.72 RP
Aug 15, 2026 13:21Tomislav TunkovicTomislav TunkovicCPPclang++14.0.6Error
Aug 15, 2026 13:02Tomislav TunkovicTomislav TunkovicCPPclang++14.0.6Error+549.20 RP
Aug 15, 2026 09:34Tomislav TunkovicTomislav TunkovicCPPclang++14.0.6Error
Aug 15, 2026 09:24Tomislav TunkovicTomislav TunkovicCPPclang++14.0.6Error
Aug 15, 2026 09:16Tomislav TunkovicTomislav TunkovicCPPclang++14.0.6Error
Aug 15, 2026 08:42Tomislav TunkovicTomislav TunkovicCPPclang++18.1.3Error
Aug 15, 2026 08:38Tomislav TunkovicTomislav TunkovicCPPclang++14.0.6Error
Aug 15, 2026 08:34Tomislav TunkovicTomislav TunkovicCPPclang++14.0.6Error+147.36 RP
Aug 15, 2026 08:14Tomislav TunkovicTomislav TunkovicCPPclang++14.0.6Error+199.79 RP
Aug 15, 2026 08:06Tomislav TunkovicTomislav TunkovicCPPclang++14.0.6Error
Aug 15, 2026 07:56Tomislav TunkovicTomislav TunkovicCPPclang++14.0.6Error+697.45 RP
Aug 15, 2026 07:49Tomislav TunkovicTomislav TunkovicCPPclang++14.0.6Error
Aug 14, 2026 19:23marko1597marko1597CPPclang++18.1.3Error+9.82 RP
Aug 14, 2026 18:52marko1597marko1597CPPclang++18.1.3Success190,736
Aug 14, 2026 18:46marko1597marko1597CPPg++14.2.0Error
Aug 14, 2026 18:46marko1597marko1597CPPclang++18.1.3Error+273.53 RP
Aug 14, 2026 18:29marko1597marko1597CPPg++14.2.0Success4,481
Aug 14, 2026 18:28marko1597marko1597CPPclang++18.1.3Success4,496
Aug 14, 2026 18:20marko1597marko1597CPPclang++18.1.3Success51,159
Aug 14, 2026 17:54marko1597marko1597CPPg++14.2.0Success3,992
Aug 14, 2026 17:53marko1597marko1597CPPclang++18.1.3Success3,881
Aug 14, 2026 17:47marko1597marko1597CPPclang++18.1.3Error+65.62 RP
Aug 14, 2026 17:47marko1597marko1597CPPg++14.2.0Error+2.53 RP
Aug 14, 2026 17:40marko1597marko1597CPPg++13.3.0Success3,994
Aug 14, 2026 17:40marko1597marko1597CPPg++14.2.0Error+111.14 RP
Aug 14, 2026 17:34marko1597marko1597CPPclang++18.1.3Success4,744
Aug 14, 2026 17:34marko1597marko1597CPPg++14.2.0Success4,753
Aug 14, 2026 17:13marko1597marko1597CPPg++14.2.0Success4,170
Aug 14, 2026 17:03marko1597marko1597CPPclang++18.1.3Success4,265
Aug 14, 2026 17:03marko1597marko1597CPPg++14.2.0Error+181.46 RP