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 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
Nov 12, 2024 16:22NoSIMD_C#NoSIMD_C#CSHARP9.0.0-rc.2Success31,369
Nov 12, 2024 16:13NoSIMD_C#NoSIMD_C#CSHARP9.0.0-rc.2Success30,526
Nov 12, 2024 09:56NoSIMD_C#NoSIMD_C#CSHARP9.0.0-rc.2Success30,979
Nov 10, 2024 19:38Alexander KosachevAlexander KosachevGOgo1.23.3Success480,303+20.82 RP
Nov 10, 2024 10:29NoSIMD_C#NoSIMD_C#CSHARP9.0.0-rc.2Success30,542
Nov 10, 2024 10:16NoSIMD_C#NoSIMD_C#CSHARP9.0.0-rc.2Success30,218
Nov 10, 2024 10:13NoSIMD_C#NoSIMD_C#CSHARP9.0.0-rc.2Error
Nov 10, 2024 10:06NoSIMD_C#NoSIMD_C#CSHARP9.0.0-rc.2Success29,736+5.98 RP
Nov 10, 2024 10:00NoSIMD_C#NoSIMD_C#CSHARP9.0.0-rc.2Error
Nov 10, 2024 09:41NoSIMD_C#NoSIMD_C#CSHARP9.0.0-rc.2Error
Nov 10, 2024 09:38NoSIMD_C#NoSIMD_C#CSHARP9.0.0-rc.2Error
Nov 10, 2024 09:34NoSIMD_C#NoSIMD_C#CSHARP9.0.0-rc.2Error
Nov 10, 2024 09:32NoSIMD_C#NoSIMD_C#CSHARP9.0.0-rc.2Error
Nov 10, 2024 09:27NoSIMD_C#NoSIMD_C#CSHARP9.0.0-rc.2Error
Nov 10, 2024 09:22NoSIMD_C#NoSIMD_C#CSHARP9.0.0-rc.2Error
Nov 10, 2024 09:20NoSIMD_C#NoSIMD_C#CSHARP9.0.0-rc.2Error
Nov 10, 2024 09:16NoSIMD_C#NoSIMD_C#CSHARP9.0.0-rc.2Error
Nov 10, 2024 08:58NoSIMD_C#NoSIMD_C#CSHARP9.0.0-rc.2Success30,003+3.40 RP
Nov 10, 2024 08:48NoSIMD_C#NoSIMD_C#CSHARP9.0.0-rc.2Success30,157+46.82 RP
Nov 10, 2024 08:25NoSIMD_C#NoSIMD_C#CSHARP9.0.0-rc.2Success43,065
Nov 10, 2024 08:23NoSIMD_C#NoSIMD_C#CSHARP9.0.0-rc.2Success42,358
Nov 10, 2024 08:21NoSIMD_C#NoSIMD_C#CSHARP9.0.0-rc.2Success41,614
Nov 10, 2024 08:05NoSIMD_C#NoSIMD_C#CSHARP9.0.0-rc.2Success72,716
Nov 10, 2024 08:03E SequeiraE SequeiraCPPg++13.2.0Error
Nov 10, 2024 08:02NoSIMD_C#NoSIMD_C#CSHARP9.0.0-rc.2Success70,181
Nov 10, 2024 08:02E SequeiraE SequeiraCPPg++13.2.0Error
Nov 10, 2024 08:01E SequeiraE SequeiraCPPclang++18.1.3Error
Nov 10, 2024 08:01NoSIMD_C#NoSIMD_C#CSHARP9.0.0-rc.2Success70,145
Nov 10, 2024 07:59NoSIMD_C#NoSIMD_C#CSHARP9.0.0-rc.2Error
Nov 10, 2024 07:54NoSIMD_C#NoSIMD_C#CSHARP9.0.0-rc.2Error
Nov 10, 2024 07:54E SequeiraE SequeiraCPPclang++18.1.3Error
Nov 10, 2024 07:51NoSIMD_C#NoSIMD_C#CSHARP9.0.0-rc.2Error
Nov 10, 2024 07:47NoSIMD_C#NoSIMD_C#CSHARP9.0.0-rc.2Error