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 21, 2026 16:09Andrew EpsteinAndrew EpsteinCPPg++14.2.0Error
Aug 21, 2026 16:01Andrew EpsteinAndrew EpsteinCPPg++14.2.0Error+264.31 RP
Aug 21, 2026 15:53Victor MerckléVictor MerckléCPPclang++18.1.3Success2,340
Aug 21, 2026 15:49Andrew EpsteinAndrew EpsteinCPPg++14.2.0Error
Aug 21, 2026 15:49Victor MerckléVictor MerckléCPPclang++18.1.3Success2,342
Aug 21, 2026 15:46Victor MerckléVictor MerckléCPPclang++18.1.3Success2,335
Aug 21, 2026 15:45Victor MerckléVictor MerckléCPPclang++18.1.3Success2,334
Aug 21, 2026 15:44Andrew EpsteinAndrew EpsteinCPPg++14.2.0Error+218.30 RP
Aug 21, 2026 15:43Victor MerckléVictor MerckléCPPclang++18.1.3Success2,338
Aug 21, 2026 15:38Andrew EpsteinAndrew EpsteinCPPg++14.2.0Success3,979+464.85 RP
Aug 21, 2026 15:35Victor MerckléVictor MerckléCPPclang++18.1.3Success2,338
Aug 21, 2026 15:32Andrew EpsteinAndrew EpsteinCPPg++14.2.0Success4,882+416.49 RP
Aug 21, 2026 15:30Victor MerckléVictor MerckléCPPclang++18.1.3Success2,763
Aug 21, 2026 15:24Andrew EpsteinAndrew EpsteinCPPg++14.2.0Success24,693
Aug 21, 2026 15:20Andrew EpsteinAndrew EpsteinCPPg++14.2.0Success6,332
Aug 21, 2026 15:12Andrew EpsteinAndrew EpsteinCPPg++14.2.0Success6,128+1'522.85 RP
Aug 21, 2026 15:02Andrew EpsteinAndrew EpsteinCPPg++14.2.0Success91,741+109.00 RP
Aug 21, 2026 14:14Victor MerckléVictor MerckléCPPclang++18.1.3Success3,174
Aug 21, 2026 14:10Victor MerckléVictor MerckléCPPclang++18.1.3Success2,441
Aug 21, 2026 13:55Victor MerckléVictor MerckléCPPclang++18.1.3Success3,109
Aug 21, 2026 13:52Victor MerckléVictor MerckléCPPclang++18.1.3Success4,244
Aug 21, 2026 13:46Victor MerckléVictor MerckléCPPclang++18.1.3Success2,083
Aug 21, 2026 13:43Victor MerckléVictor MerckléCPPclang++18.1.3Success2,117
Aug 21, 2026 13:39Victor MerckléVictor MerckléCPPclang++18.1.3Success2,084
Aug 21, 2026 13:37Victor MerckléVictor MerckléCPPclang++18.1.3Success2,083
Aug 21, 2026 13:36Victor MerckléVictor MerckléCPPclang++18.1.3Success2,162
Aug 21, 2026 13:32Victor MerckléVictor MerckléCPPclang++18.1.3Success3,320
Aug 21, 2026 13:29Victor MerckléVictor MerckléCPPclang++18.1.3Success2,181
Aug 21, 2026 13:27Victor MerckléVictor MerckléCPPclang++18.1.3Success2,085
Aug 21, 2026 13:21Victor MerckléVictor MerckléCPPclang++18.1.3Success4,147
Aug 21, 2026 13:20Victor MerckléVictor MerckléCPPclang++18.1.3Success2,099
Aug 21, 2026 13:17Victor MerckléVictor MerckléCPPclang++18.1.3Success2,117
Aug 21, 2026 13:14Victor MerckléVictor MerckléCPPg++14.2.0Success2,121
Aug 21, 2026 13:12Victor MerckléVictor MerckléCPPclang++18.1.3Success2,121
Aug 21, 2026 13:09Victor MerckléVictor MerckléCPPclang++18.1.3Success2,145
Aug 21, 2026 13:07Victor MerckléVictor MerckléCPPclang++20.1.2Success2,274
Aug 18, 2026 04:15Victor MerckléVictor MerckléCPPclang++18.1.3Success2,105
Aug 18, 2026 04:12Victor MerckléVictor MerckléCPPclang++18.1.3Success2,190
Aug 18, 2026 04:08Victor MerckléVictor MerckléCPPclang++20.1.2Success2,090
Aug 18, 2026 03:57Victor MerckléVictor MerckléCPPclang++18.1.3Success2,106
Aug 18, 2026 03:45Victor MerckléVictor MerckléCPPclang++18.1.3Success2,309
Aug 18, 2026 03:25Victor MerckléVictor MerckléCPPclang++18.1.3Success2,241
Aug 18, 2026 02:46Victor MerckléVictor MerckléCSHARP10.0.7Error
Aug 18, 2026 02:33Victor MerckléVictor MerckléCSHARP10.0.7Error
Aug 18, 2026 02:29Victor MerckléVictor MerckléCPPclang++18.1.3Success2,083
Aug 18, 2026 02:22Victor MerckléVictor MerckléCPPclang++18.1.3Success2,510
Aug 18, 2026 02:10Victor MerckléVictor MerckléCPPclang++18.1.3Success2,128
Aug 18, 2026 01:20Victor MerckléVictor MerckléCSHARP10.0.7Error
Aug 18, 2026 01:11Victor MerckléVictor MerckléCSHARP10.0.7Error
Aug 18, 2026 00:58Josu San MartinJosu San MartinCSHARP10.0.7Error
Aug 18, 2026 00:52Victor MerckléVictor MerckléCSHARP10.0.7Error
Aug 18, 2026 00:43Josu San MartinJosu San MartinCSHARP9.0.15Error
Aug 18, 2026 00:26Josu San MartinJosu San MartinCSHARP9.0.15Error
Aug 18, 2026 00:24Victor MerckléVictor MerckléCSHARP10.0.7Error
Aug 18, 2026 00:24Josu San MartinJosu San MartinGOgo1.26.2Error
Aug 18, 2026 00:22Josu San MartinJosu San MartinZIG0.15.1Error
Aug 18, 2026 00:19Josu San MartinJosu San MartinRUSTrust-1.95.0Error
Aug 18, 2026 00:08Victor MerckléVictor MerckléCSHARP10.0.7Error
Aug 17, 2026 23:40Victor MerckléVictor MerckléCSHARP10.0.7Error
Aug 17, 2026 22:42Victor MerckléVictor MerckléCSHARP10.0.7Error
Aug 17, 2026 22:04Victor MerckléVictor MerckléCSHARP10.0.7Error+5.00 RP
Aug 17, 2026 18:40Tomislav TunkovicTomislav TunkovicCSHARP9.0.15Error
Aug 17, 2026 18:13Tomislav TunkovicTomislav TunkovicCSHARP9.0.15Error
Aug 17, 2026 18:11Tomislav TunkovicTomislav TunkovicGOgo1.26.2Error
Aug 17, 2026 17:59Tomislav TunkovicTomislav TunkovicCSHARP9.0.15Error
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