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
Dec 14, 2024 12:11E SequeiraE SequeiraGOgo1.23.4Error
Dec 14, 2024 12:08E SequeiraE SequeiraGOgo1.23.4Error
Dec 14, 2024 12:06E SequeiraE SequeiraGOgo1.23.4Error
Dec 14, 2024 12:04E SequeiraE SequeiraGOgo1.23.4Error
Dec 14, 2024 12:03E SequeiraE SequeiraGOgo1.23.4Error
Dec 14, 2024 12:00E SequeiraE SequeiraGOgo1.23.4Error
Dec 14, 2024 11:59E SequeiraE SequeiraGOgo1.23.4Error
Dec 14, 2024 11:57E SequeiraE SequeiraGOgo1.23.4Error
Dec 14, 2024 11:55E SequeiraE SequeiraGOgo1.23.4Error
Dec 14, 2024 11:50E SequeiraE SequeiraGOgo1.23.4Error
Dec 14, 2024 11:48E SequeiraE SequeiraGOgo1.23.4Error
Dec 14, 2024 11:45E SequeiraE SequeiraGOgo1.23.4Error
Dec 14, 2024 11:42E SequeiraE SequeiraGOgo1.23.4Error
Dec 14, 2024 11:33E SequeiraE SequeiraGOgo1.23.4Success1,259,378
Dec 14, 2024 11:25E SequeiraE SequeiraGOgo1.23.4Error
Dec 13, 2024 07:54NoSIMD_C#NoSIMD_C#CSHARP9.0.0Success29,245
Dec 12, 2024 22:45Joad NacerJoad NacerCPPg++13.2.0Success4,452+2.52 RP
Dec 12, 2024 22:44Joad NacerJoad NacerCPPclang++18.1.3Success5,759
Dec 11, 2024 22:59E SequeiraE SequeiraCPPclang++18.1.3Success478,419
Dec 11, 2024 22:51E SequeiraE SequeiraGOgo1.23.4Error
Dec 11, 2024 22:48E SequeiraE SequeiraGOgo1.23.4Error
Dec 11, 2024 22:46E SequeiraE SequeiraGOgo1.23.4Error
Dec 11, 2024 22:43E SequeiraE SequeiraGOgo1.23.4Error
Dec 11, 2024 22:41E SequeiraE SequeiraGOgo1.23.4Error
Dec 11, 2024 22:39E SequeiraE SequeiraGOgo1.23.4Error
Dec 11, 2024 22:36E SequeiraE SequeiraGOgo1.23.4Error
Dec 11, 2024 22:35E SequeiraE SequeiraGOgo1.23.4Error
Dec 11, 2024 22:30E SequeiraE SequeiraGOgo1.23.4Error
Dec 11, 2024 22:28E SequeiraE SequeiraGOgo1.23.4Error
Dec 11, 2024 22:27E SequeiraE SequeiraGOgo1.23.4Error
Dec 11, 2024 22:15E SequeiraE SequeiraGOgo1.23.4Error
Dec 11, 2024 22:11E SequeiraE SequeiraGOgo1.23.4Error
Dec 11, 2024 22:02E SequeiraE SequeiraGOgo1.23.4Error
Dec 11, 2024 22:01E SequeiraE SequeiraGOgo1.23.4Error
Dec 11, 2024 21:59E SequeiraE SequeiraGOgo1.23.4Error
Dec 11, 2024 21:51E SequeiraE SequeiraGOgo1.23.4Error
Dec 11, 2024 21:49E SequeiraE SequeiraGOgo1.23.4Error
Dec 11, 2024 21:40E SequeiraE SequeiraGOgo1.23.4Success461,115+0.16 RP
Dec 11, 2024 21:37E SequeiraE SequeiraGOgo1.23.4Error
Dec 11, 2024 21:34E SequeiraE SequeiraGOgo1.23.4Error
Dec 11, 2024 21:33E SequeiraE SequeiraGOgo1.23.4Success464,630+0.11 RP
Dec 11, 2024 21:33E SequeiraE SequeiraGOgo1.23.4Success467,206
Dec 11, 2024 21:32E SequeiraE SequeiraGOgo1.23.4Error
Dec 11, 2024 21:28E SequeiraE SequeiraGOgo1.23.4Error
Dec 11, 2024 21:26E SequeiraE SequeiraGOgo1.23.4Error
Dec 11, 2024 21:25E SequeiraE SequeiraGOgo1.23.4Error
Dec 11, 2024 21:20E SequeiraE SequeiraGOgo1.23.4Error
Dec 11, 2024 21:20E SequeiraE SequeiraGOgo1.23.4Success467,066+0.01 RP
Dec 11, 2024 21:16E SequeiraE SequeiraGOgo1.23.4Error
Dec 11, 2024 21:13E SequeiraE SequeiraGOgo1.23.4Success469,622
Dec 11, 2024 21:11E SequeiraE SequeiraGOgo1.23.4Error
Dec 11, 2024 21:10E SequeiraE SequeiraGOgo1.23.4Success467,178+0.02 RP
Dec 11, 2024 21:07E SequeiraE SequeiraGOgo1.23.4Success467,618+0.03 RP
Dec 11, 2024 21:05E SequeiraE SequeiraGOgo1.23.4Success468,300+0.39 RP
Dec 11, 2024 21:00E SequeiraE SequeiraGOgo1.23.4Error
Dec 11, 2024 20:59E SequeiraE SequeiraGOgo1.23.4Success480,285
Dec 10, 2024 05:59NoSIMD_C#NoSIMD_C#CSHARP9.0.0Success42,333
Dec 10, 2024 05:50NoSIMD_C#NoSIMD_C#CSHARP9.0.0Success42,489
Dec 10, 2024 05:34NoSIMD_C#NoSIMD_C#CSHARP9.0.0Success29,639
Dec 10, 2024 05:32NoSIMD_C#NoSIMD_C#CSHARP9.0.0Success29,321
Dec 7, 2024 18:25NoSIMD_C#NoSIMD_C#CSHARP9.0.0Success30,719
Dec 4, 2024 12:25NoSIMD_C#NoSIMD_C#CSHARP9.0.0-rc.2Success29,776
Nov 30, 2024 07:21NoSIMD_C#NoSIMD_C#CSHARP9.0.0-rc.2Success29,649
Nov 30, 2024 06:11NoSIMD_C#NoSIMD_C#CSHARP9.0.0-rc.2Success30,081
Nov 30, 2024 06:08NoSIMD_C#NoSIMD_C#CSHARP9.0.0-rc.2Success30,851
Nov 30, 2024 05:57NoSIMD_C#NoSIMD_C#CSHARP9.0.0-rc.2Success31,772
Nov 30, 2024 05:52NoSIMD_C#NoSIMD_C#CSHARP9.0.0-rc.2Success29,064+1.16 RP
Nov 30, 2024 05:51NoSIMD_C#NoSIMD_C#CSHARP9.0.0-rc.2Success29,317
Nov 30, 2024 05:46NoSIMD_C#NoSIMD_C#CSHARP9.0.0-rc.2Success29,390
Nov 29, 2024 12:25NoSIMD_C#NoSIMD_C#CSHARP9.0.0-rc.2Success208,933
Nov 29, 2024 12:06NoSIMD_C#NoSIMD_C#CSHARP9.0.0-rc.2Success29,113+3.80 RP
Nov 29, 2024 11:52NoSIMD_C#NoSIMD_C#CSHARP9.0.0-rc.2Success29,275+1.98 RP
Nov 28, 2024 10:51NoSIMD_C#NoSIMD_C#CSHARP9.0.0-rc.2Success267,966
Nov 27, 2024 16:12NoSIMD_C#NoSIMD_C#CSHARP9.0.0-rc.2Success33,273
Nov 27, 2024 15:59NoSIMD_C#NoSIMD_C#CSHARP9.0.0-rc.2Error
Nov 26, 2024 15:44NoSIMD_C#NoSIMD_C#CSHARP9.0.0-rc.2Success40,578
Nov 23, 2024 16:43E SequeiraE SequeiraCPPclang++18.1.3Success4,029,274
Nov 23, 2024 16:37E SequeiraE SequeiraCPPclang++18.1.3Success479,292
Nov 21, 2024 10:58NoSIMD_C#NoSIMD_C#CSHARP9.0.0-rc.2Error
Nov 20, 2024 05:25NoSIMD_C#NoSIMD_C#CSHARP9.0.0-rc.2Success29,414
Nov 20, 2024 05:23NoSIMD_C#NoSIMD_C#CSHARP9.0.0-rc.2Success29,360+0.30 RP
Nov 20, 2024 05:21NoSIMD_C#NoSIMD_C#CSHARP9.0.0-rc.2Success29,892
Nov 20, 2024 04:57NoSIMD_C#NoSIMD_C#CSHARP9.0.0-rc.2Error
Nov 20, 2024 04:52NoSIMD_C#NoSIMD_C#CSHARP9.0.0-rc.2Error
Nov 20, 2024 02:390xrinegade0xrinegadeCPPclang++18.1.3Success606,754
Nov 20, 2024 02:390xrinegade0xrinegadeGOgo1.23.3Success480,030+20.83 RP
Nov 19, 2024 10:54NoSIMD_C#NoSIMD_C#CSHARP9.0.0-rc.2Success73,728
Nov 15, 2024 17:41NoSIMD_C#NoSIMD_C#CSHARP9.0.0-rc.2Success33,893
Nov 14, 2024 18:08NoSIMD_C#NoSIMD_C#CSHARP9.0.0-rc.2Error
Nov 12, 2024 17:15NoSIMD_C#NoSIMD_C#CSHARP9.0.0-rc.2Error
Nov 12, 2024 17:13NoSIMD_C#NoSIMD_C#CSHARP9.0.0-rc.2Error
Nov 12, 2024 17:11NoSIMD_C#NoSIMD_C#CSHARP9.0.0-rc.2Error
Nov 12, 2024 17:11NoSIMD_C#NoSIMD_C#CSHARP9.0.0-rc.2Error
Nov 12, 2024 17:02NoSIMD_C#NoSIMD_C#CSHARP9.0.0-rc.2Error
Nov 12, 2024 17:01NoSIMD_C#NoSIMD_C#CSHARP9.0.0-rc.2Error
Nov 12, 2024 16:52NoSIMD_C#NoSIMD_C#CSHARP9.0.0-rc.2Success29,373+3.78 RP
Nov 12, 2024 16:44NoSIMD_C#NoSIMD_C#CSHARP9.0.0-rc.2Success29,537+4.54 RP
Nov 12, 2024 16:31NoSIMD_C#NoSIMD_C#CSHARP9.0.0-rc.2Success29,817
Nov 12, 2024 16:26NoSIMD_C#NoSIMD_C#CSHARP9.0.0-rc.2Success30,127
Nov 12, 2024 16:23NoSIMD_C#NoSIMD_C#CSHARP9.0.0-rc.2Success29,818