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
Sep 13, 2023 07:21mmalczakmmalczakCPPg++9.3.0Error
Sep 13, 2023 07:20mmalczakmmalczakCPPg++9.3.0Error
Sep 13, 2023 07:17mmalczakmmalczakCPPg++9.3.0Error
Sep 13, 2023 07:16mmalczakmmalczakCPPg++9.3.0Error
Sep 13, 2023 07:15mmalczakmmalczakCPPg++9.3.0Error
Sep 13, 2023 07:13mmalczakmmalczakCPPg++9.3.0Error
Sep 13, 2023 07:12mmalczakmmalczakCPPg++9.3.0Error
Sep 13, 2023 07:10mmalczakmmalczakCPPg++9.3.0Error
Sep 13, 2023 07:07mmalczakmmalczakCPPg++9.3.0Success512,091+2.53 RP
Sep 12, 2023 10:54mmalczakmmalczakCPPg++9.3.0Success1,285,993
Sep 12, 2023 10:52mmalczakmmalczakCPPg++9.3.0Success2,268,757
Sep 12, 2023 10:50mmalczakmmalczakCPPg++9.3.0Error
Sep 12, 2023 10:43mmalczakmmalczakCPPg++9.3.0Error
Sep 12, 2023 10:41mmalczakmmalczakCPPg++9.3.0Error
Sep 12, 2023 10:39mmalczakmmalczakCPPg++9.3.0Error
Sep 12, 2023 10:37mmalczakmmalczakCPPg++9.3.0Error
Sep 12, 2023 10:35mmalczakmmalczakCPPg++9.3.0Error
Sep 12, 2023 10:31mmalczakmmalczakCPPg++9.3.0Error
Sep 12, 2023 10:25mmalczakmmalczakCPPg++9.3.0Error
Sep 12, 2023 10:22mmalczakmmalczakCPPg++9.3.0Error
Sep 12, 2023 10:20mmalczakmmalczakCPPg++9.3.0Error
Sep 12, 2023 10:17mmalczakmmalczakCPPg++9.3.0Error
Sep 12, 2023 10:16mmalczakmmalczakCPPg++9.3.0Error
Sep 12, 2023 10:12mmalczakmmalczakCPPg++9.3.0Error
Sep 12, 2023 09:37mmalczakmmalczakCPPg++9.3.0Error
Sep 12, 2023 09:32mmalczakmmalczakCPPg++9.3.0Error
Sep 12, 2023 09:17mmalczakmmalczakCPPg++9.3.0Error
Sep 12, 2023 09:13mmalczakmmalczakCPPg++9.3.0Error
Sep 12, 2023 09:10mmalczakmmalczakCPPg++9.3.0Error
Sep 12, 2023 09:06mmalczakmmalczakCPPg++9.3.0Error
Sep 12, 2023 09:05mmalczakmmalczakCPPg++9.3.0Error
Sep 12, 2023 09:02mmalczakmmalczakCPPg++9.3.0Error
Sep 12, 2023 08:55mmalczakmmalczakCPPg++9.3.0Error
Sep 12, 2023 08:51mmalczakmmalczakCPPg++9.3.0Error
Sep 12, 2023 08:49mmalczakmmalczakCPPg++9.3.0Error
Sep 12, 2023 08:47mmalczakmmalczakCPPg++9.3.0Error
Sep 12, 2023 08:46mmalczakmmalczakCPPg++9.3.0Error
Sep 12, 2023 08:40mmalczakmmalczakCPPg++9.3.0Error
Sep 12, 2023 08:35mmalczakmmalczakCPPg++9.3.0Error
Sep 12, 2023 08:32mmalczakmmalczakCPPg++9.3.0Error
Sep 12, 2023 08:29mmalczakmmalczakCPPg++9.3.0Error
Sep 12, 2023 08:24mmalczakmmalczakCPPg++9.3.0Success589,772
Sep 5, 2023 08:56mmalczakmmalczakCPPg++9.3.0Error
Sep 5, 2023 08:40mmalczakmmalczakCPPg++9.3.0Error
Sep 5, 2023 08:39mmalczakmmalczakCPPg++9.3.0Error
Sep 5, 2023 08:37mmalczakmmalczakCPPg++9.3.0Error
Sep 5, 2023 08:35mmalczakmmalczakCPPg++9.3.0Error
Sep 5, 2023 08:32mmalczakmmalczakCPPg++9.3.0Error
Sep 5, 2023 08:30mmalczakmmalczakCPPg++9.3.0Error
Sep 5, 2023 08:27mmalczakmmalczakCPPg++9.3.0Error
Sep 5, 2023 08:26mmalczakmmalczakCPPg++9.3.0Error
Sep 5, 2023 08:22mmalczakmmalczakCPPg++9.3.0Error
Sep 5, 2023 08:20mmalczakmmalczakCPPg++9.3.0Error
Sep 5, 2023 08:17mmalczakmmalczakCPPg++9.3.0Error
Sep 5, 2023 08:16mmalczakmmalczakCPPg++9.3.0Error
Sep 5, 2023 08:09mmalczakmmalczakCPPg++9.3.0Error
Sep 5, 2023 08:07mmalczakmmalczakCPPg++9.3.0Error
Sep 5, 2023 08:05mmalczakmmalczakCPPg++9.3.0Error
Sep 5, 2023 08:00mmalczakmmalczakCPPg++9.3.0Error
Sep 5, 2023 07:58mmalczakmmalczakCPPg++9.3.0Error
Sep 5, 2023 07:55mmalczakmmalczakCPPg++9.3.0Error
Sep 5, 2023 07:54mmalczakmmalczakCPPg++9.3.0Error
Sep 5, 2023 07:52mmalczakmmalczakCPPg++9.3.0Error
Sep 5, 2023 07:50mmalczakmmalczakCPPg++9.3.0Error
Sep 5, 2023 07:49mmalczakmmalczakCPPg++9.3.0Error
Sep 5, 2023 07:36mmalczakmmalczakCPPg++9.3.0Success588,446+0.11 RP
Sep 5, 2023 07:29mmalczakmmalczakCPPg++9.3.0Success592,121+16.89 RP
Aug 31, 2023 19:42vladnovikov93vladnovikov93CPPg++9.3.0Success486,310+3.67 RP
Aug 31, 2023 19:34vladnovikov93vladnovikov93CPPg++9.3.0Success591,911+16.89 RP
Aug 8, 2023 13:06PavelPavelGOgo1.20.7Success501,214+19.95 RP
Aug 4, 2023 09:31Yurkov AlekseyYurkov AlekseyCPPg++9.3.0Success6,574+15.12 RP
Aug 4, 2023 09:30Yurkov AlekseyYurkov AlekseyCPPg++9.3.0Success6,664
Jul 27, 2023 07:57parsersmailparsersmailGOgo1.20.6Success499,873+20.01 RP
Jul 21, 2023 22:44gchebanovgchebanovCPPg++9.3.0Error
Jul 2, 2023 23:08nithroniumnithroniumCPPg++9.3.0Success593,180+16.86 RP
Jun 28, 2023 07:54Gubin DmitryGubin DmitryGOgo1.20.5Error
Jun 28, 2023 07:52Gubin DmitryGubin DmitryGOgo1.20.5Success89,133+4.57 RP
Jun 28, 2023 07:10Gubin DmitryGubin DmitryGOgo1.20.5Error
Jun 28, 2023 04:29Gubin DmitryGubin DmitryGOgo1.20.5Error
Jun 28, 2023 04:23Gubin DmitryGubin DmitryGOgo1.20.5Success92,920+13.24 RP
Jun 28, 2023 04:05Gubin DmitryGubin DmitryGOgo1.20.5Error
Jun 28, 2023 04:03Gubin DmitryGubin DmitryGOgo1.20.5Success106,424
Jun 28, 2023 04:02Gubin DmitryGubin DmitryGOgo1.20.5Error
Jun 28, 2023 03:53Gubin DmitryGubin DmitryGOgo1.20.5Error
Jun 28, 2023 03:40Gubin DmitryGubin DmitryGOgo1.20.5Error
Jun 28, 2023 03:37Gubin DmitryGubin DmitryGOgo1.20.5Error
Jun 28, 2023 03:35Gubin DmitryGubin DmitryGOgo1.20.5Error
Jun 28, 2023 03:22Gubin DmitryGubin DmitryGOgo1.20.5Error
Jun 28, 2023 03:20Gubin DmitryGubin DmitryGOgo1.20.5Success105,958+73.84 RP
Jun 28, 2023 03:18Gubin DmitryGubin DmitryGOgo1.20.5Error
Jun 28, 2023 03:16Gubin DmitryGubin DmitryGOgo1.20.5Error
Jun 28, 2023 03:13Gubin DmitryGubin DmitryGOgo1.20.5Error
Jun 27, 2023 03:27Gubin DmitryGubin DmitryGOgo1.20.5Error
Jun 27, 2023 03:23Gubin DmitryGubin DmitryGOgo1.20.5Error
Jun 27, 2023 03:07Gubin DmitryGubin DmitryGOgo1.20.5Success486,919+0.54 RP
Jun 27, 2023 03:05Gubin DmitryGubin DmitryGOgo1.20.5Error
Jun 27, 2023 02:52Gubin DmitryGubin DmitryGOgo1.20.5Success500,074+20.00 RP
Apr 21, 2023 15:45DarkclainerDarkclainerGOgo1.20.3Success27,882+337.99 RP
Apr 19, 2023 11:26DarkclainerDarkclainerGOgo1.20.3Success483,959+0.80 RP
Apr 19, 2023 11:22DarkclainerDarkclainerGOgo1.20.3Success503,447+19.86 RP