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 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.0Success4,441+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
Dec 14, 2024 14:09E SequeiraE SequeiraCPPclang++18.1.3Success324,927
Dec 14, 2024 14:07E SequeiraE SequeiraCPPclang++18.1.3Success324,011
Dec 14, 2024 14:07E SequeiraE SequeiraCPPclang++18.1.3Success322,813
Dec 14, 2024 14:05E SequeiraE SequeiraCPPclang++18.1.3Success322,612
Dec 14, 2024 14:03E SequeiraE SequeiraCPPclang++18.1.3Success324,013
Dec 14, 2024 14:01E SequeiraE SequeiraCPPclang++18.1.3Error
Dec 14, 2024 13:54E SequeiraE SequeiraCPPclang++18.1.3Success322,117+6.62 RP
Dec 14, 2024 13:47E SequeiraE SequeiraCPPclang++18.1.3Success409,414+0.57 RP
Dec 14, 2024 13:45E SequeiraE SequeiraCPPclang++18.1.3Success419,253+0.19 RP
Dec 14, 2024 13:41E SequeiraE SequeiraCPPclang++18.1.3Success422,663+1.97 RP
Dec 14, 2024 13:29E SequeiraE SequeiraGOgo1.23.4Error
Dec 14, 2024 12:24E SequeiraE SequeiraGOgo1.23.4Error
Dec 14, 2024 12:22E SequeiraE SequeiraGOgo1.23.4Error
Dec 14, 2024 12:20E SequeiraE SequeiraGOgo1.23.4Error
Dec 14, 2024 12:18E SequeiraE SequeiraGOgo1.23.4Error
Dec 14, 2024 12:16E SequeiraE SequeiraGOgo1.23.4Error
Dec 14, 2024 12:14E SequeiraE SequeiraGOgo1.23.4Error