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 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
Jul 27, 2024 15:57Joad NacerJoad NacerCPPg++9.4.0Success6,874
Jul 27, 2024 15:55Joad NacerJoad NacerCPPg++9.4.0Success6,833
Jul 27, 2024 15:55Joad NacerJoad NacerCPPg++9.4.0Success6,844
Jul 27, 2024 15:54Joad NacerJoad NacerCPPg++9.4.0Success6,835
Jul 27, 2024 15:53Joad NacerJoad NacerCPPg++9.4.0Success6,772
Jul 27, 2024 15:52Joad NacerJoad NacerCPPg++9.4.0Success6,844
Jul 27, 2024 15:52Joad NacerJoad NacerCPPg++9.4.0Success6,815
Jul 27, 2024 15:51Joad NacerJoad NacerCPPg++9.4.0Success6,804
Jul 27, 2024 15:50Joad NacerJoad NacerCPPg++9.4.0Error
Jul 27, 2024 11:11Joad NacerJoad NacerCPPg++9.4.0Success7,166
Jul 27, 2024 10:14Andrey LikhachevAndrey LikhachevRUSTrust-1.79.0Error
Jul 27, 2024 06:14Andrey LikhachevAndrey LikhachevGOgo1.22.4Error
Jul 27, 2024 06:06Andrey LikhachevAndrey LikhachevRUSTrust-1.79.0Error
Jul 17, 2024 14:42AoshiWAoshiWCSHARP8.0.7Success222,094+45.03 RP
Jul 17, 2024 14:38AoshiWAoshiWCSHARP8.0.7Error
Jun 23, 2024 10:58AnSaAnSaCPPg++9.4.0Error
Jun 4, 2024 17:47Joad NacerJoad NacerCPPg++9.4.0Error
Jun 4, 2024 17:42Joad NacerJoad NacerCPPg++9.4.0Success7,605
Jun 4, 2024 17:40Joad NacerJoad NacerCPPg++9.4.0Success7,349
Jun 4, 2024 17:40Joad NacerJoad NacerCPPg++9.4.0Success7,598
Jun 4, 2024 17:40Joad NacerJoad NacerCPPg++9.4.0Success7,439
Jun 4, 2024 17:39Joad NacerJoad NacerCPPg++9.4.0Error
Jun 4, 2024 17:35Joad NacerJoad NacerCPPg++9.4.0Error
Jun 4, 2024 17:09Joad NacerJoad NacerCPPg++9.4.0Error
Jun 4, 2024 16:57Joad NacerJoad NacerCPPg++9.4.0Success7,199
Jun 4, 2024 16:54Joad NacerJoad NacerCPPg++9.4.0Error
Jun 4, 2024 16:50Joad NacerJoad NacerCPPg++9.4.0Error
Jun 4, 2024 16:44Joad NacerJoad NacerCPPg++9.4.0Success16,622
Jun 4, 2024 16:33Joad NacerJoad NacerCPPg++9.4.0Success16,650
Jun 4, 2024 16:29Joad NacerJoad NacerCPPg++9.4.0Success16,657
Jun 4, 2024 16:20Joad NacerJoad NacerCPPg++9.4.0Success7,326
Jun 4, 2024 16:18Joad NacerJoad NacerCPPg++9.4.0Error
Jun 4, 2024 16:16Joad NacerJoad NacerCPPg++9.4.0Error
Jun 2, 2024 18:12Joad NacerJoad NacerCPPg++9.4.0Success7,273
Jun 2, 2024 18:03Joad NacerJoad NacerCPPg++9.4.0Success7,259
May 22, 2024 18:11Joad NacerJoad NacerCPPg++9.4.0Error
May 12, 2024 23:28Joad NacerJoad NacerCPPg++9.4.0Success7,261
May 12, 2024 23:27Joad NacerJoad NacerCPPg++9.4.0Error
May 10, 2024 00:38Joad NacerJoad NacerCPPg++9.4.0Error
May 8, 2024 00:19Joad NacerJoad NacerCPPg++9.4.0Success7,553
May 8, 2024 00:12Joad NacerJoad NacerCPPg++9.4.0Success7,364
May 8, 2024 00:09Joad NacerJoad NacerCPPg++9.4.0Success7,358
May 8, 2024 00:05Joad NacerJoad NacerCPPg++9.4.0Success7,561
May 7, 2024 23:47Joad NacerJoad NacerCPPg++9.4.0Success7,491
May 7, 2024 23:46Joad NacerJoad NacerCPPg++9.4.0Error
May 4, 2024 17:10AndreiAndreiCSHARP9.0.0-preview.3Error
May 4, 2024 16:52AndreiAndreiCSHARP8.0.0Error
May 4, 2024 16:50AndreiAndreiCSHARP8.0.0Error
May 4, 2024 16:36AndreiAndreiCSHARP8.0.0Error
May 4, 2024 16:27AndreiAndreiCSHARP9.0.0-preview.3Error
May 4, 2024 16:22AndreiAndreiCSHARP9.0.0-preview.3Error
May 4, 2024 16:17AndreiAndreiCSHARP9.0.0-preview.3Error
Apr 30, 2024 20:24Joad NacerJoad NacerCPPg++9.4.0Error
Apr 23, 2024 18:1840k-btc40k-btcGOgo1.22.2Success482,492+20.73 RP
Apr 23, 2024 17:48Joad NacerJoad NacerCPPg++9.4.0Success7,529
Apr 23, 2024 17:46Joad NacerJoad NacerCPPg++9.4.0Success7,544
Apr 23, 2024 17:42Joad NacerJoad NacerCPPg++9.4.0Success7,713
Apr 23, 2024 17:40Joad NacerJoad NacerCPPg++9.4.0Success7,529
Apr 23, 2024 16:56Joad NacerJoad NacerCPPg++9.4.0Error
Apr 21, 2024 15:54Joad NacerJoad NacerCPPg++9.4.0Error
Apr 20, 2024 17:48Joad NacerJoad NacerCPPg++9.4.0Error
Apr 20, 2024 17:40Joad NacerJoad NacerCPPg++9.4.0Success4,996
Apr 20, 2024 17:39Joad NacerJoad NacerCPPclang++10.0.0Success5,054
Apr 20, 2024 17:36Joad NacerJoad NacerCPPg++9.4.0Error
Apr 20, 2024 17:34Joad NacerJoad NacerCPPg++9.4.0Error
Apr 20, 2024 17:31Joad NacerJoad NacerCPPg++9.4.0Error