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 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
Aug 2, 2024 15:11RicardoRicardoCSHARP9.0.0-preview.6Error
Aug 2, 2024 14:02RicardoRicardoCSHARP9.0.0-preview.6Error
Aug 2, 2024 14:01RicardoRicardoCSHARP9.0.0-preview.6Error
Aug 2, 2024 13:59RicardoRicardoCSHARP9.0.0-preview.6Error
Aug 2, 2024 13:56RicardoRicardoCSHARP9.0.0-preview.6Error
Aug 2, 2024 13:54RicardoRicardoCSHARP9.0.0-preview.6Error
Jul 29, 2024 22:29Andrey LikhachevAndrey LikhachevRUSTrust-1.79.0Success7,390
Jul 29, 2024 21:22Pavel IvashkovPavel IvashkovCPPg++9.4.0Success57,843+28.21 RP
Jul 29, 2024 21:18Pavel IvashkovPavel IvashkovCPPg++9.4.0Success69,124+94.64 RP
Jul 29, 2024 17:52Pavel IvashkovPavel IvashkovCPPg++9.4.0Success203,213
Jul 29, 2024 17:43Pavel IvashkovPavel IvashkovCPPg++9.4.0Success208,306
Jul 29, 2024 17:42Pavel IvashkovPavel IvashkovCPPg++9.4.0Success208,129
Jul 29, 2024 17:41Pavel IvashkovPavel IvashkovCPPclang++10.0.0Success207,153
Jul 29, 2024 17:39Pavel IvashkovPavel IvashkovCPPg++9.4.0Success215,310
Jul 29, 2024 17:30Pavel IvashkovPavel IvashkovCPPg++9.4.0Success199,906+1.15 RP
Jul 29, 2024 17:23Pavel IvashkovPavel IvashkovCPPg++9.4.0Success204,608+48.87 RP
Jul 29, 2024 17:07Pavel IvashkovPavel IvashkovCPPg++9.4.0Error
Jul 29, 2024 17:04Pavel IvashkovPavel IvashkovCPPg++9.4.0Error
Jul 29, 2024 16:38Pavel IvashkovPavel IvashkovCPPg++9.4.0Error
Jul 29, 2024 16:34Pavel IvashkovPavel IvashkovCPPg++9.4.0Error
Jul 29, 2024 16:29Pavel IvashkovPavel IvashkovCPPg++9.4.0Error
Jul 29, 2024 09:09Andrey LikhachevAndrey LikhachevRUSTrust-1.79.0Success7,291+303.29 RP
Jul 28, 2024 21:50Andrey LikhachevAndrey LikhachevRUSTrust-1.79.0Success9,361+221.24 RP
Jul 28, 2024 20:42Andrey LikhachevAndrey LikhachevRUSTrust-1.79.0Error
Jul 28, 2024 20:41Andrey LikhachevAndrey LikhachevRUSTrust-1.79.0Error
Jul 28, 2024 20:38Andrey LikhachevAndrey LikhachevRUSTrust-1.79.0Error
Jul 28, 2024 20:28Andrey LikhachevAndrey LikhachevRUSTrust-1.79.0Success11,806+847.03 RP
Jul 28, 2024 17:42Andrey LikhachevAndrey LikhachevRUSTrust-1.79.0Error
Jul 28, 2024 17:40Andrey LikhachevAndrey LikhachevRUSTrust-1.79.0Error
Jul 28, 2024 17:36Andrey LikhachevAndrey LikhachevRUSTrust-1.79.0Error
Jul 28, 2024 17:33Andrey LikhachevAndrey LikhachevRUSTrust-1.79.0Error
Jul 28, 2024 15:11Andrey LikhachevAndrey LikhachevRUSTrust-1.79.0Error
Jul 28, 2024 15:03Andrey LikhachevAndrey LikhachevRUSTrust-1.79.0Error
Jul 28, 2024 07:24Andrey LikhachevAndrey LikhachevRUSTrust-1.79.0Error