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
May 2, 2021 04:27Yuriy LyfenkoYuriy LyfenkoCPPError
May 2, 2021 04:16Yuriy LyfenkoYuriy LyfenkoCPPError
May 2, 2021 04:08Yuriy LyfenkoYuriy LyfenkoCPPError
May 2, 2021 04:07Yuriy LyfenkoYuriy LyfenkoCPPError
May 2, 2021 04:06Yuriy LyfenkoYuriy LyfenkoCPPError
May 2, 2021 04:03Yuriy LyfenkoYuriy LyfenkoCPPError
May 2, 2021 03:42Yuriy LyfenkoYuriy LyfenkoCPPError
May 2, 2021 03:41Yuriy LyfenkoYuriy LyfenkoCPPError
May 2, 2021 03:39Yuriy LyfenkoYuriy LyfenkoCPPError
May 2, 2021 03:38Yuriy LyfenkoYuriy LyfenkoCPPError
May 2, 2021 02:48Yuriy LyfenkoYuriy LyfenkoCPPError
May 2, 2021 02:46Yuriy LyfenkoYuriy LyfenkoCPPError
May 2, 2021 02:45Yuriy LyfenkoYuriy LyfenkoCPPError
May 2, 2021 02:42Yuriy LyfenkoYuriy LyfenkoCPPError
May 2, 2021 02:39Yuriy LyfenkoYuriy LyfenkoCPPError
May 2, 2021 02:34Yuriy LyfenkoYuriy LyfenkoCPPError
May 2, 2021 02:27Yuriy LyfenkoYuriy LyfenkoCPPError
May 2, 2021 02:17Yuriy LyfenkoYuriy LyfenkoCPPError
May 2, 2021 02:15Yuriy LyfenkoYuriy LyfenkoCPPError
May 2, 2021 01:56Yuriy LyfenkoYuriy LyfenkoCPPError
May 2, 2021 01:50Yuriy LyfenkoYuriy LyfenkoCPPError
May 2, 2021 01:33Yuriy LyfenkoYuriy LyfenkoCPPError
May 2, 2021 01:30Yuriy LyfenkoYuriy LyfenkoCPPError
May 2, 2021 01:23Yuriy LyfenkoYuriy LyfenkoCPPError
May 1, 2021 20:49Yuriy LyfenkoYuriy LyfenkoCPPError
May 1, 2021 20:47Yuriy LyfenkoYuriy LyfenkoCPPError
May 1, 2021 20:45Yuriy LyfenkoYuriy LyfenkoCPPError
May 1, 2021 20:42Yuriy LyfenkoYuriy LyfenkoCPPError
May 1, 2021 20:41Yuriy LyfenkoYuriy LyfenkoCPPError
May 1, 2021 20:39Yuriy LyfenkoYuriy LyfenkoCPPError
May 1, 2021 20:37Yuriy LyfenkoYuriy LyfenkoCPPError
May 1, 2021 20:33Yuriy LyfenkoYuriy LyfenkoCPPError
May 1, 2021 20:32Yuriy LyfenkoYuriy LyfenkoCPPError
May 1, 2021 20:30Yuriy LyfenkoYuriy LyfenkoCPPError
May 1, 2021 20:29Yuriy LyfenkoYuriy LyfenkoCPPError
May 1, 2021 16:44Yuriy LyfenkoYuriy LyfenkoCPPError
May 1, 2021 16:41Yuriy LyfenkoYuriy LyfenkoCPPError
May 1, 2021 16:40Yuriy LyfenkoYuriy LyfenkoCPPError
May 1, 2021 16:39Yuriy LyfenkoYuriy LyfenkoCPPError
May 1, 2021 16:37Yuriy LyfenkoYuriy LyfenkoCPPError
May 1, 2021 15:20Andrey TsvetkovAndrey TsvetkovGOSuccess11,849
May 1, 2021 15:19Andrey TsvetkovAndrey TsvetkovGOError
May 1, 2021 15:17Andrey TsvetkovAndrey TsvetkovGOError
May 1, 2021 14:45Yurkov AlekseyYurkov AlekseyCPPSuccess10,734
May 1, 2021 14:44Andrey TsvetkovAndrey TsvetkovGOSuccess11,865
May 1, 2021 14:40Andrey TsvetkovAndrey TsvetkovGOError
May 1, 2021 14:22Yuriy LyfenkoYuriy LyfenkoCPPError
May 1, 2021 14:16Andrey TsvetkovAndrey TsvetkovGOSuccess11,966
May 1, 2021 14:10Andrey TsvetkovAndrey TsvetkovGOSuccess11,802+6.44 RP
May 1, 2021 14:02Yurkov AlekseyYurkov AlekseyCPPSuccess10,734+43.74 RP
May 1, 2021 14:01Yurkov AlekseyYurkov AlekseyCPPError
May 1, 2021 13:58Andrey TsvetkovAndrey TsvetkovGOSuccess12,075
May 1, 2021 13:55Yurkov AlekseyYurkov AlekseyCPPSuccess10,992+2.48 RP
May 1, 2021 13:52Andrey TsvetkovAndrey TsvetkovGOSuccess12,167
May 1, 2021 13:49Yurkov AlekseyYurkov AlekseyCPPSuccess11,008
May 1, 2021 13:48Andrey TsvetkovAndrey TsvetkovGOSuccess11,847+80.34 RP
May 1, 2021 13:43Yurkov AlekseyYurkov AlekseyCPPSuccess11,007+908.51 RP
May 1, 2021 13:42Yurkov AlekseyYurkov AlekseyCPPError
May 1, 2021 13:41Yurkov AlekseyYurkov AlekseyCPPError
May 1, 2021 13:38Andrey TsvetkovAndrey TsvetkovGOSuccess12,461
May 1, 2021 13:37Yurkov AlekseyYurkov AlekseyCPPError
May 1, 2021 13:35Yurkov AlekseyYurkov AlekseyCPPError
May 1, 2021 13:24Andrey TsvetkovAndrey TsvetkovGOSuccess12,439
May 1, 2021 13:13Andrey TsvetkovAndrey TsvetkovGOSuccess12,483
May 1, 2021 13:13Anton PaymyshevAnton PaymyshevCPPError
May 1, 2021 13:11Yurkov AlekseyYurkov AlekseyCPPError
May 1, 2021 13:10Yurkov AlekseyYurkov AlekseyCPPError
May 1, 2021 13:09Andrey TsvetkovAndrey TsvetkovGOSuccess12,439+803.92 RP
May 1, 2021 13:09Yurkov AlekseyYurkov AlekseyCPPError
May 1, 2021 13:07Yurkov AlekseyYurkov AlekseyCPPError
May 1, 2021 13:06Yurkov AlekseyYurkov AlekseyCPPError
May 1, 2021 13:05Yurkov AlekseyYurkov AlekseyCPPError
May 1, 2021 13:04Yurkov AlekseyYurkov AlekseyCPPError
May 1, 2021 13:03Yurkov AlekseyYurkov AlekseyCPPError
May 1, 2021 13:01Yurkov AlekseyYurkov AlekseyCPPError
May 1, 2021 13:00Yurkov AlekseyYurkov AlekseyCPPError
May 1, 2021 12:57Yurkov AlekseyYurkov AlekseyCPPError
May 1, 2021 12:56Yurkov AlekseyYurkov AlekseyCPPError
May 1, 2021 12:54Yurkov AlekseyYurkov AlekseyCPPError
May 1, 2021 12:54Andrey TsvetkovAndrey TsvetkovGOError
May 1, 2021 12:52Yurkov AlekseyYurkov AlekseyCPPError
May 1, 2021 12:50Yurkov AlekseyYurkov AlekseyCPPError
May 1, 2021 12:48Yurkov AlekseyYurkov AlekseyCPPError
May 1, 2021 12:46Yurkov AlekseyYurkov AlekseyCPPError
May 1, 2021 12:45Yurkov AlekseyYurkov AlekseyCPPError
May 1, 2021 12:42Andrey TsvetkovAndrey TsvetkovGOError
May 1, 2021 12:25Andrey TsvetkovAndrey TsvetkovGOError
May 1, 2021 12:22Andrey TsvetkovAndrey TsvetkovGOError
May 1, 2021 12:20Andrey TsvetkovAndrey TsvetkovGOError
May 1, 2021 12:10Andrey TsvetkovAndrey TsvetkovGOError
May 1, 2021 12:05Andrey TsvetkovAndrey TsvetkovGOError
May 1, 2021 11:51Yurkov AlekseyYurkov AlekseyCPPError
May 1, 2021 11:51Yurkov AlekseyYurkov AlekseyCPPError
May 1, 2021 11:49Andrey TsvetkovAndrey TsvetkovGOError
May 1, 2021 11:34Andrey TsvetkovAndrey TsvetkovGOError
May 1, 2021 11:05Andrey TsvetkovAndrey TsvetkovGOError
May 1, 2021 11:03Andrey TsvetkovAndrey TsvetkovGOError
May 1, 2021 11:00glebarezglebarezGOError
May 1, 2021 10:53Yurkov AlekseyYurkov AlekseyCPPError
May 1, 2021 10:33Andrey TsvetkovAndrey TsvetkovGOError