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 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
Apr 16, 2023 04:37Robert BurkeRobert BurkeCPPg++9.3.0Error
Apr 15, 2023 07:20Robert BurkeRobert BurkeCPPg++9.3.0Error
Apr 15, 2023 07:18Robert BurkeRobert BurkeCPPg++9.3.0Error
Apr 15, 2023 07:16Robert BurkeRobert BurkeCPPg++9.3.0Error
Apr 15, 2023 07:13Robert BurkeRobert BurkeCPPg++9.3.0Error
Apr 15, 2023 06:47Robert BurkeRobert BurkeCPPg++9.3.0Error
Apr 15, 2023 06:46Robert BurkeRobert BurkeCPPg++9.3.0Error
Apr 15, 2023 06:43Robert BurkeRobert BurkeCPPg++9.3.0Success12,869+3.01 RP
Apr 15, 2023 06:33Robert BurkeRobert BurkeCPPg++9.3.0Success12,919+670.00 RP
Apr 15, 2023 05:49Robert BurkeRobert BurkeCPPg++9.3.0Success96,328
Apr 15, 2023 05:44Robert BurkeRobert BurkeCPPg++9.3.0Success96,106+2.22 RP
Apr 15, 2023 05:42Robert BurkeRobert BurkeCPPg++9.3.0Success98,203+82.35 RP
Apr 15, 2023 05:38Robert BurkeRobert BurkeCPPg++9.3.0Error
Apr 15, 2023 05:37Robert BurkeRobert BurkeCPPg++9.3.0Error
Apr 15, 2023 05:35Robert BurkeRobert BurkeCPPg++9.3.0Error
Apr 15, 2023 05:33Robert BurkeRobert BurkeCPPg++9.3.0Error
Apr 15, 2023 05:31Robert BurkeRobert BurkeCPPg++9.3.0Error
Apr 14, 2023 15:09Robert BurkeRobert BurkeCPPg++9.3.0Error
Apr 12, 2023 10:54Robert BurkeRobert BurkeCPPg++9.3.0Success514,598
Apr 9, 2023 11:41Robert BurkeRobert BurkeCPPg++9.3.0Success519,683
Apr 9, 2023 11:14Robert BurkeRobert BurkeCPPg++9.3.0Error
Apr 9, 2023 11:09Robert BurkeRobert BurkeCPPg++9.3.0Success513,299+0.22 RP
Mar 9, 2023 10:41Saken BerdibekovSaken BerdibekovGOgo1.20.2Error
Mar 9, 2023 10:38Saken BerdibekovSaken BerdibekovGOgo1.20.2Error
Mar 9, 2023 10:25Saken BerdibekovSaken BerdibekovGOgo1.20.2Error
Mar 9, 2023 10:24Saken BerdibekovSaken BerdibekovGOgo1.20.2Error
Mar 9, 2023 10:20Saken BerdibekovSaken BerdibekovGOgo1.20.2Error
Feb 22, 2023 16:16Arsen AbdusalamovArsen AbdusalamovGOgo1.20.1Error
Feb 22, 2023 16:13Arsen AbdusalamovArsen AbdusalamovGOgo1.20.1Error
Feb 17, 2023 20:58LiamLiamCPPg++9.3.0Success29,026
Feb 17, 2023 20:57LiamLiamCPPg++9.3.0Success29,022
Feb 17, 2023 20:57LiamLiamCPPclang++10.0.0Success23,918
Feb 17, 2023 20:55LiamLiamCPPclang++10.0.0Success23,123+16.31 RP
Feb 17, 2023 20:54LiamLiamCPPclang++10.0.0Success34,195