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 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
May 1, 2021 10:29Andrey TsvetkovAndrey TsvetkovGOError
May 1, 2021 10:25Andrey TsvetkovAndrey TsvetkovGOError
May 1, 2021 10:24Andrey TsvetkovAndrey TsvetkovGOError
May 1, 2021 10:20Andrey TsvetkovAndrey TsvetkovGOError
May 1, 2021 10:13Andrey TsvetkovAndrey TsvetkovGOError
May 1, 2021 10:12Andrey TsvetkovAndrey TsvetkovGOError
May 1, 2021 10:02Andrey TsvetkovAndrey TsvetkovGOError
May 1, 2021 10:01Andrey TsvetkovAndrey TsvetkovGOError
May 1, 2021 09:57Andrey TsvetkovAndrey TsvetkovGOError
May 1, 2021 09:56Andrey TsvetkovAndrey TsvetkovGOError
May 1, 2021 09:51Andrey TsvetkovAndrey TsvetkovGOError
May 1, 2021 09:45Andrey TsvetkovAndrey TsvetkovGOError
May 1, 2021 09:34Andrey TsvetkovAndrey TsvetkovGOError
May 1, 2021 09:31Andrey TsvetkovAndrey TsvetkovGOError
May 1, 2021 09:30Andrey TsvetkovAndrey TsvetkovGOError
May 1, 2021 09:29Andrey TsvetkovAndrey TsvetkovGOError
May 1, 2021 09:28Andrey TsvetkovAndrey TsvetkovGOError
May 1, 2021 09:26Andrey TsvetkovAndrey TsvetkovGOError
May 1, 2021 09:25Andrey TsvetkovAndrey TsvetkovGOError
May 1, 2021 09:22Andrey TsvetkovAndrey TsvetkovGOError
May 1, 2021 09:21Andrey TsvetkovAndrey TsvetkovGOError
May 1, 2021 09:20Andrey TsvetkovAndrey TsvetkovGOError
May 1, 2021 09:17Andrey TsvetkovAndrey TsvetkovGOError
May 1, 2021 09:16Andrey TsvetkovAndrey TsvetkovGOError
May 1, 2021 09:15Andrey TsvetkovAndrey TsvetkovGOError
May 1, 2021 09:12Andrey TsvetkovAndrey TsvetkovGOError
May 1, 2021 09:09Andrey TsvetkovAndrey TsvetkovGOError
May 1, 2021 09:04Andrey TsvetkovAndrey TsvetkovGOError
May 1, 2021 09:02Andrey TsvetkovAndrey TsvetkovGOError
May 1, 2021 08:58Andrey TsvetkovAndrey TsvetkovGOError
May 1, 2021 08:52Andrey TsvetkovAndrey TsvetkovGOError
May 1, 2021 08:47Andrey TsvetkovAndrey TsvetkovGOError
May 1, 2021 08:46Andrey TsvetkovAndrey TsvetkovGOError
May 1, 2021 08:44Andrey TsvetkovAndrey TsvetkovGOError
May 1, 2021 08:41Andrey TsvetkovAndrey TsvetkovGOError
May 1, 2021 08:34Andrey TsvetkovAndrey TsvetkovGOError
May 1, 2021 08:26Andrey TsvetkovAndrey TsvetkovGOError
May 1, 2021 08:25Andrey TsvetkovAndrey TsvetkovGOError
May 1, 2021 06:39Yuriy LyfenkoYuriy LyfenkoCPPError
May 1, 2021 06:38Yuriy LyfenkoYuriy LyfenkoCPPError
May 1, 2021 06:18Yuriy LyfenkoYuriy LyfenkoCPPError
May 1, 2021 06:15Yuriy LyfenkoYuriy LyfenkoCPPError
May 1, 2021 06:14Yuriy LyfenkoYuriy LyfenkoCPPError
May 1, 2021 06:02Yuriy LyfenkoYuriy LyfenkoCPPError
May 1, 2021 05:57Yuriy LyfenkoYuriy LyfenkoCPPError
May 1, 2021 05:56Yuriy LyfenkoYuriy LyfenkoCPPError
May 1, 2021 05:55Yuriy LyfenkoYuriy LyfenkoCPPError
May 1, 2021 05:54Yuriy LyfenkoYuriy LyfenkoCPPError
May 1, 2021 05:54Yuriy LyfenkoYuriy LyfenkoCPPError
May 1, 2021 05:51Yuriy LyfenkoYuriy LyfenkoCPPError
May 1, 2021 05:45Yuriy LyfenkoYuriy LyfenkoCPPError
May 1, 2021 05:44Yuriy LyfenkoYuriy LyfenkoCPPError
May 1, 2021 05:37Yuriy LyfenkoYuriy LyfenkoCPPError
May 1, 2021 04:46Yuriy LyfenkoYuriy LyfenkoCPPError
May 1, 2021 04:38Yuriy LyfenkoYuriy LyfenkoCPPError
May 1, 2021 04:37Yuriy LyfenkoYuriy LyfenkoCPPError
May 1, 2021 04:32Yuriy LyfenkoYuriy LyfenkoCPPError
May 1, 2021 04:29Yuriy LyfenkoYuriy LyfenkoCPPError
May 1, 2021 04:28Yuriy LyfenkoYuriy LyfenkoCPPError
May 1, 2021 04:27Yuriy LyfenkoYuriy LyfenkoCPPError
May 1, 2021 04:25Yuriy LyfenkoYuriy LyfenkoCPPError
May 1, 2021 04:24Yuriy LyfenkoYuriy LyfenkoCPPError
May 1, 2021 02:59Yuriy LyfenkoYuriy LyfenkoCPPError
May 1, 2021 02:40Yuriy LyfenkoYuriy LyfenkoCPPError
May 1, 2021 02:39Yuriy LyfenkoYuriy LyfenkoCPPError
May 1, 2021 01:01Yurkov AlekseyYurkov AlekseyCPPError
May 1, 2021 00:58Yurkov AlekseyYurkov AlekseyCPPError
May 1, 2021 00:57Yurkov AlekseyYurkov AlekseyCPPError
May 1, 2021 00:56Yurkov AlekseyYurkov AlekseyCPPError
May 1, 2021 00:56Yurkov AlekseyYurkov AlekseyCPPError
May 1, 2021 00:54Yurkov AlekseyYurkov AlekseyCPPError
May 1, 2021 00:53Yurkov AlekseyYurkov AlekseyCPPError
May 1, 2021 00:53Yuriy LyfenkoYuriy LyfenkoCPPError
May 1, 2021 00:51Yurkov AlekseyYurkov AlekseyCPPError
May 1, 2021 00:48Yurkov AlekseyYurkov AlekseyCPPError
May 1, 2021 00:46Yuriy LyfenkoYuriy LyfenkoCPPError
May 1, 2021 00:46Yurkov AlekseyYurkov AlekseyCPPError
May 1, 2021 00:45Yuriy LyfenkoYuriy LyfenkoCPPError
May 1, 2021 00:42Yurkov AlekseyYurkov AlekseyCPPError
May 1, 2021 00:42Yuriy LyfenkoYuriy LyfenkoCPPError
May 1, 2021 00:41Yurkov AlekseyYurkov AlekseyCPPError
May 1, 2021 00:41Yuriy LyfenkoYuriy LyfenkoCPPError
May 1, 2021 00:39Yuriy LyfenkoYuriy LyfenkoCPPError
May 1, 2021 00:39Yurkov AlekseyYurkov AlekseyCPPError
May 1, 2021 00:37Yuriy LyfenkoYuriy LyfenkoCPPError
May 1, 2021 00:37Yurkov AlekseyYurkov AlekseyCPPError
May 1, 2021 00:36Yurkov AlekseyYurkov AlekseyCPPError
May 1, 2021 00:35Yurkov AlekseyYurkov AlekseyCPPError
May 1, 2021 00:32Yurkov AlekseyYurkov AlekseyCPPError
May 1, 2021 00:30Yurkov AlekseyYurkov AlekseyCPPError
May 1, 2021 00:29Yurkov AlekseyYurkov AlekseyCPPError
May 1, 2021 00:28Yurkov AlekseyYurkov AlekseyCPPError
May 1, 2021 00:25Yurkov AlekseyYurkov AlekseyCPPError