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
Jan 11, 2025 22:54Ian MckibbenIan MckibbenCPPclang++18.1.3Success18,213
Jan 11, 2025 22:50Ian MckibbenIan MckibbenCPPclang++18.1.3Success18,092+5.92 RP
Jan 11, 2025 22:47Ian MckibbenIan MckibbenCPPclang++18.1.3Success18,288+1.07 RP
Jan 11, 2025 22:46Ian MckibbenIan MckibbenCPPclang++18.1.3Success21,232
Jan 11, 2025 22:43Ian MckibbenIan MckibbenCPPclang++18.1.3Success18,324+19.97 RP
Jan 11, 2025 22:34Ian MckibbenIan MckibbenCPPclang++18.1.3Success19,020+64.64 RP
Jan 11, 2025 22:30Ian MckibbenIan MckibbenCPPclang++18.1.3Success21,686+90.11 RP
Jan 11, 2025 22:28Ian MckibbenIan MckibbenCPPclang++18.1.3Success26,953+109.63 RP
Jan 11, 2025 22:25Ian MckibbenIan MckibbenCPPclang++18.1.3Success38,257+18.35 RP
Jan 11, 2025 22:02Ian MckibbenIan MckibbenCPPclang++18.1.3Success41,159
Jan 11, 2025 22:00Ian MckibbenIan MckibbenCPPclang++18.1.3Error
Jan 11, 2025 21:57Ian MckibbenIan MckibbenCPPclang++18.1.3Error
Jan 11, 2025 21:51Ian MckibbenIan MckibbenCPPclang++18.1.3Success41,145+178.13 RP
Jan 11, 2025 21:49Ian MckibbenIan MckibbenCPPclang++18.1.3Success166,557
Jan 11, 2025 21:47Ian MckibbenIan MckibbenCPPclang++18.1.3Error
Jan 11, 2025 21:45Ian MckibbenIan MckibbenCPPclang++18.1.3Success154,063+11.47 RP
Jan 11, 2025 21:43Ian MckibbenIan MckibbenCPPclang++18.1.3Error
Jan 11, 2025 21:42Ian MckibbenIan MckibbenCPPclang++18.1.3Error
Jan 11, 2025 21:40Ian MckibbenIan MckibbenCPPclang++18.1.3Error
Jan 11, 2025 21:36Ian MckibbenIan MckibbenCPPclang++18.1.3Success187,142+35.06 RP
Jan 11, 2025 21:35Ian MckibbenIan MckibbenCPPclang++18.1.3Error
Jan 11, 2025 21:33Ian MckibbenIan MckibbenCPPclang++18.1.3Error
Jan 11, 2025 21:30Ian MckibbenIan MckibbenCPPclang++18.1.3Error
Jan 11, 2025 21:28Ian MckibbenIan MckibbenCPPclang++18.1.3Error
Jan 11, 2025 21:20Ian MckibbenIan MckibbenCPPclang++18.1.3Error
Jan 11, 2025 21:18Ian MckibbenIan MckibbenCPPclang++18.1.3Error
Jan 11, 2025 21:18Ian MckibbenIan MckibbenCPPclang++18.1.3Error
Jan 11, 2025 21:16Ian MckibbenIan MckibbenCPPclang++18.1.3Error
Jan 11, 2025 21:16Ian MckibbenIan MckibbenCPPclang++18.1.3Error
Jan 11, 2025 21:14Ian MckibbenIan MckibbenCPPclang++18.1.3Error
Jan 11, 2025 21:12Ian MckibbenIan MckibbenCPPclang++18.1.3Error
Jan 11, 2025 21:11Ian MckibbenIan MckibbenCPPclang++18.1.3Error
Jan 11, 2025 21:11Ian MckibbenIan MckibbenCPPclang++18.1.3Error
Jan 11, 2025 21:08Ian MckibbenIan MckibbenCPPclang++18.1.3Error
Jan 11, 2025 21:07Ian MckibbenIan MckibbenCPPclang++18.1.3Error
Jan 11, 2025 21:05Ian MckibbenIan MckibbenCPPclang++18.1.3Error
Jan 11, 2025 21:03Ian MckibbenIan MckibbenCPPclang++18.1.3Error
Jan 11, 2025 21:02Ian MckibbenIan MckibbenCPPclang++18.1.3Error
Jan 11, 2025 21:00Ian MckibbenIan MckibbenCPPclang++18.1.3Error
Jan 11, 2025 20:58Ian MckibbenIan MckibbenCPPclang++18.1.3Error
Jan 11, 2025 20:56Ian MckibbenIan MckibbenCPPclang++18.1.3Error
Jan 11, 2025 20:55Ian MckibbenIan MckibbenCPPclang++18.1.3Error
Jan 11, 2025 20:53Ian MckibbenIan MckibbenCPPclang++18.1.3Error
Jan 11, 2025 20:52Ian MckibbenIan MckibbenCPPclang++18.1.3Error
Jan 11, 2025 20:51Ian MckibbenIan MckibbenCPPclang++18.1.3Error
Jan 11, 2025 20:50Ian MckibbenIan MckibbenCPPclang++18.1.3Error
Jan 11, 2025 20:49Ian MckibbenIan MckibbenCPPclang++18.1.3Error
Jan 11, 2025 20:48Ian MckibbenIan MckibbenCPPclang++18.1.3Error
Jan 11, 2025 20:12Ian MckibbenIan MckibbenCPPclang++18.1.3Error
Jan 11, 2025 20:10Ian MckibbenIan MckibbenCPPclang++18.1.3Error
Jan 11, 2025 20:09Ian MckibbenIan MckibbenCPPclang++18.1.3Error
Jan 11, 2025 20:08Ian MckibbenIan MckibbenCPPclang++18.1.3Error
Jan 11, 2025 20:07Ian MckibbenIan MckibbenCPPclang++18.1.3Error
Jan 11, 2025 20:04Ian MckibbenIan MckibbenCPPclang++18.1.3Error
Jan 11, 2025 20:03Ian MckibbenIan MckibbenCPPclang++18.1.3Error
Jan 11, 2025 20:00Ian MckibbenIan MckibbenCPPclang++18.1.3Error
Jan 11, 2025 19:59Ian MckibbenIan MckibbenCPPclang++18.1.3Error
Jan 11, 2025 19:57Ian MckibbenIan MckibbenCPPclang++18.1.3Error
Jan 11, 2025 19:54Ian MckibbenIan MckibbenCPPclang++18.1.3Error
Jan 11, 2025 19:41Ian MckibbenIan MckibbenCPPclang++18.1.3Error
Jan 11, 2025 19:40Ian MckibbenIan MckibbenCPPclang++18.1.3Error
Jan 11, 2025 19:38Ian MckibbenIan MckibbenCPPclang++18.1.3Error
Jan 11, 2025 19:36Ian MckibbenIan MckibbenCPPclang++18.1.3Error
Jan 11, 2025 19:34Ian MckibbenIan MckibbenCPPclang++18.1.3Error
Jan 11, 2025 19:33Ian MckibbenIan MckibbenCPPclang++18.1.3Error
Jan 11, 2025 19:32Ian MckibbenIan MckibbenCPPclang++18.1.3Error
Jan 11, 2025 19:31Ian MckibbenIan MckibbenCPPclang++18.1.3Error
Jan 11, 2025 19:27Ian MckibbenIan MckibbenCPPclang++18.1.3Error
Jan 11, 2025 19:18Ian MckibbenIan MckibbenCPPclang++18.1.3Error
Jan 11, 2025 19:17Ian MckibbenIan MckibbenCPPclang++18.1.3Success544,137+1.86 RP
Jan 11, 2025 19:17Ian MckibbenIan MckibbenCPPclang++18.1.3Success605,429+16.52 RP
Dec 26, 2024 22:56Joad NacerJoad NacerCPPg++13.2.0Error
Dec 26, 2024 22:55Joad NacerJoad NacerCPPg++13.2.0Error
Dec 26, 2024 22:54Joad NacerJoad NacerCPPg++13.2.0Error
Dec 26, 2024 22:45Joad NacerJoad NacerCPPg++13.2.0Error+0.51 RP
Dec 26, 2024 22:43Joad NacerJoad NacerCPPg++13.2.0Error
Dec 26, 2024 22:41Joad NacerJoad NacerCPPg++13.2.0Error
Dec 25, 2024 23:07Joad NacerJoad NacerCPPg++13.2.0Success4,626
Dec 25, 2024 23:05Joad NacerJoad NacerCPPg++13.2.0Success5,915
Dec 25, 2024 23:03Joad NacerJoad NacerCPPg++13.2.0Success4,896
Dec 25, 2024 23:03Joad NacerJoad NacerCPPg++13.2.0Success4,923
Dec 25, 2024 23:02Joad NacerJoad NacerCPPg++13.2.0Success4,919
Dec 25, 2024 22:58Joad NacerJoad NacerCPPg++13.2.0Success4,442+3.04 RP
Dec 25, 2024 22:58Joad NacerJoad NacerCPPg++13.2.0Success4,448+2.02 RP
Dec 22, 2024 21:52HighloadGPTO1HighloadGPTO1CPPclang++18.1.3Error
Dec 22, 2024 21:50HighloadGPTO1HighloadGPTO1CPPclang++18.1.3Error
Dec 22, 2024 21:48HighloadGPTO1HighloadGPTO1CPPclang++18.1.3Error
Dec 22, 2024 21:45HighloadGPTO1HighloadGPTO1CPPclang++18.1.3Error
Dec 22, 2024 21:43HighloadGPTO1HighloadGPTO1CPPclang++18.1.3Error
Dec 16, 2024 23:15Mikhail ShirokovMikhail ShirokovCPPg++13.2.0Success484,427
Dec 16, 2024 23:12Mikhail ShirokovMikhail ShirokovCPPg++13.2.0Success469,183+0.28 RP
Dec 14, 2024 14:36E SequeiraE SequeiraCPPclang++18.1.3Error
Dec 14, 2024 14:33E SequeiraE SequeiraCPPclang++18.1.3Success303,219
Dec 14, 2024 14:31E SequeiraE SequeiraCPPg++13.2.0Success310,142
Dec 14, 2024 14:31E SequeiraE SequeiraCPPclang++18.1.3Success300,642+0.74 RP
Dec 14, 2024 14:22E SequeiraE SequeiraCPPclang++18.1.3Success307,492+0.11 RP
Dec 14, 2024 14:17E SequeiraE SequeiraCPPclang++18.1.3Error
Dec 14, 2024 14:14E SequeiraE SequeiraCPPclang++18.1.3Success308,512+0.93 RP
Dec 14, 2024 14:12E SequeiraE SequeiraCPPclang++18.1.3Success317,635+0.29 RP
Dec 14, 2024 14:11E SequeiraE SequeiraCPPclang++18.1.3Success320,547+0.15 RP