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
Nov 10, 2021 19:55Sergey StreminSergey StreminRUSTrust-1.56.1Error
Nov 10, 2021 19:54Sergey StreminSergey StreminRUSTrust-1.56.1Error
Nov 10, 2021 19:40Sergey StreminSergey StreminRUSTrust-1.56.1Success5,196+308.66 RP
Nov 10, 2021 19:38Sergey StreminSergey StreminRUSTrust-1.56.1Success6,280
Nov 10, 2021 19:35Sergey StreminSergey StreminRUSTrust-1.56.1Error
Nov 10, 2021 19:27Sergey StreminSergey StreminRUSTrust-1.56.1Error
Nov 10, 2021 19:25Sergey StreminSergey StreminRUSTrust-1.56.1Error
Nov 10, 2021 19:22Sergey StreminSergey StreminRUSTrust-1.56.1Error
Nov 10, 2021 19:19Sergey StreminSergey StreminRUSTrust-1.56.1Error
Nov 10, 2021 19:18Sergey StreminSergey StreminRUSTrust-1.56.1Error
Nov 10, 2021 19:17Sergey StreminSergey StreminRUSTrust-1.56.1Error
Nov 10, 2021 18:50Sergey StreminSergey StreminRUSTrust-1.56.1Success5,649
Nov 10, 2021 18:42Sergey StreminSergey StreminRUSTrust-1.56.1Success5,737
Nov 10, 2021 18:38Sergey StreminSergey StreminRUSTrust-1.56.1Success5,715
Nov 10, 2021 18:34Sergey StreminSergey StreminRUSTrust-1.56.1Success5,649+136.78 RP
Oct 14, 2021 03:27Vitaliy F.Vitaliy F.GOgo1.17.2Success50,756+5.14 RP
Oct 14, 2021 03:24Vitaliy F.Vitaliy F.GOgo1.17.2Error
Oct 14, 2021 03:15Vitaliy F.Vitaliy F.GOgo1.17.2Success52,115+61.99 RP
Oct 14, 2021 03:02Vitaliy F.Vitaliy F.GOgo1.17.2Success76,987+6.57 RP
Oct 14, 2021 02:59Vitaliy F.Vitaliy F.GOgo1.17.2Error
Oct 14, 2021 02:48Vitaliy F.Vitaliy F.GOgo1.17.2Success81,088+0.76 RP
Oct 14, 2021 02:47Vitaliy F.Vitaliy F.GOgo1.17.2Success81,590+122.56 RP
Oct 14, 2021 02:33Vitaliy F.Vitaliy F.GOgo1.17.2Error
Oct 14, 2021 02:31Vitaliy F.Vitaliy F.GOgo1.17.2Error
Oct 14, 2021 02:25Vitaliy F.Vitaliy F.GOgo1.17.2Error
Oct 14, 2021 02:12Vitaliy F.Vitaliy F.GOgo1.17.2Error
Oct 14, 2021 02:08Vitaliy F.Vitaliy F.GOgo1.17.2Error
Oct 14, 2021 00:40Vitaliy F.Vitaliy F.GOgo1.17.2Error
Oct 14, 2021 00:35Vitaliy F.Vitaliy F.GOgo1.17.2Error
Oct 13, 2021 23:14Vitaliy F.Vitaliy F.GOgo1.17.2Error
Oct 13, 2021 23:13Vitaliy F.Vitaliy F.GOgo1.17.2Error
Oct 13, 2021 23:10Vitaliy F.Vitaliy F.GOgo1.17.2Error
Oct 13, 2021 23:09Vitaliy F.Vitaliy F.GOgo1.17.2Error
Oct 13, 2021 22:49Vitaliy F.Vitaliy F.GOgo1.17.2Error
Oct 9, 2021 08:43Andrey TsvetkovAndrey TsvetkovGOgo1.14.15Success8,672
Oct 9, 2021 08:42Andrey TsvetkovAndrey TsvetkovGOgo1.14.15Error
Oct 9, 2021 08:40Andrey TsvetkovAndrey TsvetkovGOgo1.14.15Success8,663+4.51 RP
Oct 9, 2021 08:39Andrey TsvetkovAndrey TsvetkovGOgo1.14.15Error
Oct 9, 2021 08:35Andrey TsvetkovAndrey TsvetkovGOgo1.14.15Success8,883
Oct 9, 2021 08:34Andrey TsvetkovAndrey TsvetkovGOgo1.14.15Success8,697+17.96 RP
Sep 28, 2021 20:00Mikhail ShirokovMikhail ShirokovCPPg++9.3.0Success475,499+2.75 RP
Sep 28, 2021 15:44Ilya AniskovetsIlya AniskovetsCPPg++9.3.0Success9,041
Sep 28, 2021 15:44Ilya AniskovetsIlya AniskovetsCPPg++9.3.0Error
Sep 28, 2021 15:43Ilya AniskovetsIlya AniskovetsCPPg++9.3.0Error
Sep 28, 2021 15:40Ilya AniskovetsIlya AniskovetsCPPg++9.3.0Success8,894
Sep 28, 2021 14:55robotomizerobotomizeGOgo1.17.1Success494,056+20.24 RP
Sep 27, 2021 20:29Ilya AniskovetsIlya AniskovetsCPPclang++10.0.0Success11,701
Sep 27, 2021 20:26Ilya AniskovetsIlya AniskovetsCPPclang++10.0.0Success8,893
Sep 27, 2021 20:22Ilya AniskovetsIlya AniskovetsCPPclang++10.0.0Success9,174
Sep 27, 2021 20:21Ilya AniskovetsIlya AniskovetsCPPg++9.3.0Success8,558+4.89 RP
Sep 27, 2021 20:20Ilya AniskovetsIlya AniskovetsCPPg++9.3.0Success8,621
Sep 27, 2021 20:18Ilya AniskovetsIlya AniskovetsCPPg++9.3.0Success8,879
Sep 27, 2021 20:17Ilya AniskovetsIlya AniskovetsCPPg++9.3.0Success8,740
Sep 27, 2021 20:16Ilya AniskovetsIlya AniskovetsCPPg++9.3.0Success8,594+299.45 RP
Sep 27, 2021 20:14Ilya AniskovetsIlya AniskovetsCPPg++9.3.0Error
Sep 27, 2021 20:11Ilya AniskovetsIlya AniskovetsCPPg++9.3.0Success11,641
Sep 27, 2021 20:10Ilya AniskovetsIlya AniskovetsCPPg++9.3.0Success11,642
Sep 27, 2021 20:01Ilya AniskovetsIlya AniskovetsCPPg++9.3.0Error
Sep 27, 2021 19:59Ilya AniskovetsIlya AniskovetsCPPg++9.3.0Error
Sep 23, 2021 10:54Yessenturov AldiyarYessenturov AldiyarGOgo1.17.1Success494,463+20.22 RP
Sep 19, 2021 12:26Ilya AniskovetsIlya AniskovetsCPPg++9.3.0Success12,346
Sep 19, 2021 12:23Ilya AniskovetsIlya AniskovetsCPPclang++10.0.0Success12,152
Sep 19, 2021 12:21Ilya AniskovetsIlya AniskovetsCPPclang++10.0.0Success11,572+71.70 RP
Sep 19, 2021 12:19Ilya AniskovetsIlya AniskovetsCPPclang++10.0.0Success12,619+14.06 RP
Sep 19, 2021 12:17Ilya AniskovetsIlya AniskovetsCPPclang++10.0.0Success14,132
Sep 19, 2021 12:16Ilya AniskovetsIlya AniskovetsCPPclang++10.0.0Success13,946
Sep 19, 2021 12:14Ilya AniskovetsIlya AniskovetsCPPclang++10.0.0Success12,847+50.11 RP
Sep 19, 2021 12:10Ilya AniskovetsIlya AniskovetsCPPclang++10.0.0Success13,871
Sep 19, 2021 12:04Ilya AniskovetsIlya AniskovetsCPPg++9.3.0Success13,731+69.86 RP
Sep 19, 2021 12:01Ilya AniskovetsIlya AniskovetsCPPg++9.3.0Success15,188+243.89 RP
Sep 19, 2021 11:56Ilya AniskovetsIlya AniskovetsCPPg++9.3.0Error
Sep 19, 2021 11:51Ilya AniskovetsIlya AniskovetsCPPg++9.3.0Success24,124+5.66 RP
Sep 19, 2021 11:49Ilya AniskovetsIlya AniskovetsCPPg++9.3.0Success24,465
Sep 19, 2021 11:47Ilya AniskovetsIlya AniskovetsCPPg++9.3.0Success24,458+40.08 RP
Sep 19, 2021 11:40Ilya AniskovetsIlya AniskovetsCPPg++9.3.0Success27,116+350.54 RP
Sep 19, 2021 11:36Ilya AniskovetsIlya AniskovetsCPPg++9.3.0Error
Sep 19, 2021 11:29Ilya AniskovetsIlya AniskovetsCPPg++9.3.0Error
Sep 19, 2021 11:25Ilya AniskovetsIlya AniskovetsCPPg++9.3.0Error
Sep 19, 2021 10:57Ilya AniskovetsIlya AniskovetsCPPg++9.3.0Error
Sep 19, 2021 10:52Ilya AniskovetsIlya AniskovetsCPPg++9.3.0Error
Sep 19, 2021 10:48Ilya AniskovetsIlya AniskovetsCPPg++9.3.0Error
Sep 19, 2021 10:43Ilya AniskovetsIlya AniskovetsCPPg++9.3.0Error
Sep 19, 2021 10:41Ilya AniskovetsIlya AniskovetsCPPg++9.3.0Error
Sep 19, 2021 09:08Ilya AniskovetsIlya AniskovetsCPPg++9.3.0Error
Sep 18, 2021 21:43Ilya AniskovetsIlya AniskovetsCPPg++9.3.0Error
Sep 18, 2021 21:40Ilya AniskovetsIlya AniskovetsCPPg++9.3.0Error
Sep 18, 2021 21:25Ilya AniskovetsIlya AniskovetsCPPg++9.3.0Error
Sep 18, 2021 21:04Ilya AniskovetsIlya AniskovetsCPPg++9.3.0Error
Sep 18, 2021 21:01Ilya AniskovetsIlya AniskovetsCPPg++9.3.0Error
Sep 18, 2021 21:01Ilya AniskovetsIlya AniskovetsCPPg++9.3.0Error
Sep 18, 2021 20:51Ilya AniskovetsIlya AniskovetsCPPg++9.3.0Error
Sep 18, 2021 20:51Ilya AniskovetsIlya AniskovetsCPPg++9.3.0Error
Sep 18, 2021 20:48Ilya AniskovetsIlya AniskovetsCPPg++9.3.0Error
Sep 18, 2021 19:16Ilya AniskovetsIlya AniskovetsCPPg++9.3.0Success547,967+1.34 RP
Sep 8, 2021 15:21Andrey TsvetkovAndrey TsvetkovGOgo1.17Success8,881
Sep 8, 2021 14:44Mikhail ShirokovMikhail ShirokovCPPg++9.3.0Success546,998+1.38 RP
Sep 8, 2021 14:42Mikhail ShirokovMikhail ShirokovCPPg++9.3.0Success591,761+16.90 RP
Sep 5, 2021 12:37Andrey TsvetkovAndrey TsvetkovGOgo1.13.15Success9,014
Sep 5, 2021 12:35Andrey TsvetkovAndrey TsvetkovGOgo1.17Success8,945
Sep 5, 2021 12:33Andrey TsvetkovAndrey TsvetkovGOgo1.17Error