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
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
Nov 10, 2024 07:41E SequeiraE SequeiraCPPclang++18.1.3Error
Nov 10, 2024 07:39E SequeiraE SequeiraCPPclang++18.1.3Error
Nov 10, 2024 07:38NoSIMD_C#NoSIMD_C#CSHARP9.0.0-rc.2Error
Nov 10, 2024 07:37NoSIMD_C#NoSIMD_C#CSHARP9.0.0-rc.2Success40,755
Nov 10, 2024 07:34NoSIMD_C#NoSIMD_C#CSHARP9.0.0-rc.2Success32,678
Nov 10, 2024 07:32E SequeiraE SequeiraCPPclang++18.1.3Success476,951+1.16 RP
Nov 10, 2024 07:32E SequeiraE SequeiraCPPg++13.2.0Success504,952+1.61 RP
Nov 10, 2024 07:31E SequeiraE SequeiraCPPg++13.2.0Success719,892
Nov 10, 2024 07:30E SequeiraE SequeiraCPPclang++18.1.3Success703,838
Nov 10, 2024 07:28E SequeiraE SequeiraCPPclang++18.1.3Success553,975
Nov 10, 2024 07:17NoSIMD_C#NoSIMD_C#CSHARP9.0.0-rc.2Error
Nov 10, 2024 07:15NoSIMD_C#NoSIMD_C#CSHARP9.0.0-rc.2Error
Nov 10, 2024 07:14NoSIMD_C#NoSIMD_C#CSHARP9.0.0-rc.2Error
Nov 10, 2024 07:12NoSIMD_C#NoSIMD_C#CSHARP9.0.0-rc.2Error
Nov 10, 2024 07:07NoSIMD_C#NoSIMD_C#CSHARP9.0.0-rc.2Error
Nov 10, 2024 07:03NoSIMD_C#NoSIMD_C#CSHARP9.0.0-rc.2Error
Nov 10, 2024 06:55NoSIMD_C#NoSIMD_C#CSHARP9.0.0-rc.2Error
Nov 10, 2024 06:52NoSIMD_C#NoSIMD_C#CSHARP9.0.0-rc.2Error
Nov 10, 2024 06:37NoSIMD_C#NoSIMD_C#CSHARP9.0.0-rc.2Success32,448+18.74 RP
Nov 9, 2024 23:03E SequeiraE SequeiraCPPclang++18.1.3Error
Nov 9, 2024 22:28E SequeiraE SequeiraCPPg++13.2.0Success561,144
Nov 9, 2024 22:28E SequeiraE SequeiraCPPclang++18.1.3Success549,667+1.68 RP
Nov 9, 2024 22:20E SequeiraE SequeiraCPPclang++18.1.3Success605,555+16.51 RP
Nov 9, 2024 07:29NoSIMD_C#NoSIMD_C#CSHARP9.0.0-rc.2Success34,199
Nov 9, 2024 07:12NoSIMD_C#NoSIMD_C#CSHARP9.0.0-rc.2Success34,319
Nov 9, 2024 07:04NoSIMD_C#NoSIMD_C#CSHARP9.0.0-rc.2Success34,140
Nov 9, 2024 06:56NoSIMD_C#NoSIMD_C#CSHARP9.0.0-rc.2Success33,465+6.96 RP
Nov 9, 2024 06:52NoSIMD_C#NoSIMD_C#CSHARP9.0.0-rc.2Success33,859+7.04 RP
Nov 9, 2024 06:51NoSIMD_C#NoSIMD_C#CSHARP9.0.0-rc.2Success34,267+0.84 RP
Nov 9, 2024 06:47NoSIMD_C#NoSIMD_C#CSHARP9.0.0-rc.2Success34,316+99.52 RP
Nov 9, 2024 06:19NoSIMD_C#NoSIMD_C#CSHARP9.0.0-rc.2Success41,383+2.24 RP
Nov 9, 2024 06:14NoSIMD_C#NoSIMD_C#CSHARP9.0.0-rc.2Success41,575+383.04 RP
Nov 9, 2024 04:53NoSIMD_C#NoSIMD_C#CSHARP9.0.0-rc.2Error
Nov 9, 2024 04:49NoSIMD_C#NoSIMD_C#CSHARP9.0.0-rc.2Error
Nov 8, 2024 08:32NoSIMD_C#NoSIMD_C#CSHARP9.0.0-rc.2Error
Nov 8, 2024 08:31NoSIMD_C#NoSIMD_C#CSHARP9.0.0-rc.2Error
Nov 7, 2024 11:39NoSIMD_C#NoSIMD_C#CPPclang++18.1.3Success595,677+16.79 RP
Nov 6, 2024 19:25bruHFTbruHFTCPPclang++18.1.3Success608,132+16.44 RP
Nov 6, 2024 19:24bruHFTbruHFTRUSTrust-1.82.0Error
Nov 6, 2024 06:28Mikhail ShirokovMikhail ShirokovCPPg++13.2.0Error
Oct 14, 2024 17:34Joad NacerJoad NacerCPPclang++18.1.3Success5,809
Oct 14, 2024 17:34Joad NacerJoad NacerCPPg++9.4.0Success4,460
Sep 4, 2024 10:05Joad NacerJoad NacerCPPg++9.4.0Success4,457+71.17 RP
Sep 4, 2024 10:00Joad NacerJoad NacerCPPg++9.4.0Success7,194
Sep 4, 2024 09:56Joad NacerJoad NacerCPPg++9.4.0Success4,603+118.69 RP
Sep 4, 2024 09:55Joad NacerJoad NacerCPPg++9.4.0Success4,869+20.88 RP
Sep 4, 2024 09:53Joad NacerJoad NacerCPPg++9.4.0Success4,926
Sep 4, 2024 09:52Joad NacerJoad NacerCPPg++9.4.0Success6,882
Sep 3, 2024 19:06Andrey LikhachevAndrey LikhachevRUSTrust-1.79.0Error
Sep 3, 2024 18:58Yuriy LyfenkoYuriy LyfenkoCPPg++13.2.0Success3,834
Sep 3, 2024 18:57Yuriy LyfenkoYuriy LyfenkoCPPg++13.2.0Success3,737+59.48 RP
Sep 3, 2024 18:56Yuriy LyfenkoYuriy LyfenkoCPPg++13.2.0Success3,894
Sep 3, 2024 18:56Yuriy LyfenkoYuriy LyfenkoCPPclang++18.1.3Success4,420
Aug 31, 2024 21:36Yuriy LyfenkoYuriy LyfenkoCPPg++13.2.0Success3,878
Aug 31, 2024 21:36Yuriy LyfenkoYuriy LyfenkoCPPclang++18.1.3Success4,438
Aug 22, 2024 18:16Andrey LikhachevAndrey LikhachevRUSTrust-1.79.0Success7,208+15.79 RP
Aug 15, 2024 16:03AoshiWAoshiWCSHARP8.0.8Success123,542
Aug 15, 2024 10:34AoshiWAoshiWCSHARP8.0.8Success123,111+72.40 RP
Aug 15, 2024 10:15AoshiWAoshiWCSHARP8.0.8Error
Aug 15, 2024 10:01AoshiWAoshiWCSHARP8.0.8Error
Aug 15, 2024 09:59AoshiWAoshiWCSHARP8.0.8Error
Aug 15, 2024 09:52AoshiWAoshiWCSHARP8.0.7Error
Aug 2, 2024 15:30RicardoRicardoCSHARP9.0.0-preview.6Error
Aug 2, 2024 15:15RicardoRicardoCSHARP9.0.0-preview.6Error
Aug 2, 2024 15:13RicardoRicardoCSHARP9.0.0-preview.6Error