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
Apr 20, 2024 17:36Joad NacerJoad NacerCPPg++9.4.0Error
Apr 20, 2024 17:34Joad NacerJoad NacerCPPg++9.4.0Error
Apr 20, 2024 17:31Joad NacerJoad NacerCPPg++9.4.0Error
Apr 20, 2024 17:28Joad NacerJoad NacerCPPg++9.4.0Success5,047
Apr 20, 2024 17:06Joad NacerJoad NacerCPPg++9.4.0Error
Apr 20, 2024 17:04Joad NacerJoad NacerCPPg++9.4.0Error
Apr 20, 2024 17:01Joad NacerJoad NacerCPPg++9.4.0Error
Apr 20, 2024 16:57Joad NacerJoad NacerCPPg++9.4.0Success7,823
Apr 20, 2024 14:28Joad NacerJoad NacerCPPg++9.4.0Success7,625
Apr 20, 2024 14:27Joad NacerJoad NacerCPPg++9.4.0Success7,582
Apr 20, 2024 14:25Joad NacerJoad NacerCPPg++9.4.0Error
Apr 20, 2024 14:19Joad NacerJoad NacerCPPg++9.4.0Success7,397
Apr 20, 2024 14:15Joad NacerJoad NacerCPPg++9.4.0Error
Apr 20, 2024 14:13Joad NacerJoad NacerCPPg++9.4.0Success7,387
Apr 20, 2024 14:10Joad NacerJoad NacerCPPg++9.4.0Error
Apr 20, 2024 14:07Joad NacerJoad NacerCPPg++9.4.0Error
Apr 20, 2024 13:10Joad NacerJoad NacerCPPg++9.4.0Error
Apr 20, 2024 13:07Joad NacerJoad NacerCPPg++9.4.0Success6,170
Apr 20, 2024 13:05Joad NacerJoad NacerCPPg++9.4.0Success7,295
Apr 20, 2024 13:02Joad NacerJoad NacerCPPg++9.4.0Success7,711
Apr 19, 2024 11:58Joad NacerJoad NacerCPPg++9.4.0Error
Apr 19, 2024 11:57Joad NacerJoad NacerCPPclang++10.0.0Success6,230
Apr 19, 2024 01:08Joad NacerJoad NacerCPPg++9.4.0Success6,507
Apr 19, 2024 01:06Joad NacerJoad NacerCPPg++9.4.0Success4,919+198.41 RP
Apr 19, 2024 01:00Joad NacerJoad NacerCPPg++9.4.0Error
Apr 19, 2024 00:57Joad NacerJoad NacerCPPg++9.4.0Error
Apr 19, 2024 00:50Joad NacerJoad NacerCPPg++9.4.0Success7,870
Apr 19, 2024 00:48Joad NacerJoad NacerCPPg++9.4.0Success7,829
Apr 19, 2024 00:41Joad NacerJoad NacerCPPg++9.4.0Success7,864
Apr 19, 2024 00:40Joad NacerJoad NacerCPPg++9.4.0Success7,851
Apr 19, 2024 00:35Joad NacerJoad NacerCPPg++9.4.0Error
Apr 19, 2024 00:34Joad NacerJoad NacerCPPg++9.4.0Success38,815
Apr 19, 2024 00:33Joad NacerJoad NacerCPPg++9.4.0Success7,696
Apr 19, 2024 00:30Joad NacerJoad NacerCPPg++9.4.0Error
Apr 19, 2024 00:26Joad NacerJoad NacerCPPg++9.4.0Error
Apr 19, 2024 00:24Joad NacerJoad NacerCPPg++9.4.0Success5,451+503.15 RP
Apr 19, 2024 00:21Joad NacerJoad NacerCPPg++9.4.0Error
Apr 19, 2024 00:19Joad NacerJoad NacerCPPg++9.4.0Error
Apr 19, 2024 00:17Joad NacerJoad NacerCPPg++9.4.0Success7,814
Apr 19, 2024 00:15Joad NacerJoad NacerCPPg++9.4.0Error
Apr 19, 2024 00:06Joad NacerJoad NacerCPPg++9.4.0Success7,814
Apr 19, 2024 00:03Joad NacerJoad NacerCPPg++9.4.0Success7,903
Apr 19, 2024 00:02Joad NacerJoad NacerCPPg++9.4.0Success7,935
Apr 18, 2024 23:59Joad NacerJoad NacerCPPg++9.4.0Success7,922
Apr 18, 2024 23:58Joad NacerJoad NacerCPPg++9.4.0Success8,460
Apr 18, 2024 23:54Joad NacerJoad NacerCPPg++9.4.0Success7,920
Apr 18, 2024 23:53Joad NacerJoad NacerCPPg++9.4.0Success7,920
Apr 18, 2024 23:53Joad NacerJoad NacerCPPg++9.4.0Success7,869
Apr 18, 2024 23:53Joad NacerJoad NacerCPPg++9.4.0Error
Apr 18, 2024 23:53Joad NacerJoad NacerCPPg++9.4.0Success7,900
Apr 18, 2024 23:53Joad NacerJoad NacerCPPg++9.4.0Success7,903
Apr 18, 2024 23:52Joad NacerJoad NacerCPPg++9.4.0Success7,871
Apr 18, 2024 23:46Joad NacerJoad NacerCPPg++9.4.0Error
Apr 18, 2024 23:43Joad NacerJoad NacerCPPg++9.4.0Success7,513
Apr 18, 2024 23:43Joad NacerJoad NacerCPPg++9.4.0Success7,523
Apr 18, 2024 23:43Joad NacerJoad NacerCPPg++9.4.0Success7,915
Apr 18, 2024 23:41Joad NacerJoad NacerCPPg++9.4.0Error
Apr 18, 2024 23:34Joad NacerJoad NacerCPPg++9.4.0Error
Apr 18, 2024 23:21Joad NacerJoad NacerCPPg++9.4.0Error
Apr 18, 2024 23:20Joad NacerJoad NacerCPPg++9.4.0Success7,768
Apr 18, 2024 23:18Joad NacerJoad NacerCPPg++9.4.0Success7,511+16.11 RP
Apr 18, 2024 23:16Joad NacerJoad NacerCPPg++9.4.0Success7,623
Apr 18, 2024 23:13Joad NacerJoad NacerCPPg++9.4.0Error
Apr 18, 2024 23:11Joad NacerJoad NacerCPPg++9.4.0Error
Apr 18, 2024 23:11Joad NacerJoad NacerCPPg++9.4.0Error
Apr 18, 2024 23:09Joad NacerJoad NacerCPPg++9.4.0Error
Apr 18, 2024 23:06Joad NacerJoad NacerCPPg++9.4.0Error
Apr 18, 2024 23:03Joad NacerJoad NacerCPPg++9.4.0Error
Apr 18, 2024 22:56Joad NacerJoad NacerCPPg++9.4.0Error
Apr 18, 2024 22:51Joad NacerJoad NacerCPPg++9.4.0Success7,746
Apr 18, 2024 22:49Joad NacerJoad NacerCPPg++9.4.0Error
Apr 18, 2024 22:47Joad NacerJoad NacerCPPg++9.4.0Error
Apr 18, 2024 22:43Joad NacerJoad NacerCPPg++9.4.0Error
Apr 18, 2024 22:42Joad NacerJoad NacerCPPg++9.4.0Success7,731
Apr 18, 2024 22:37Joad NacerJoad NacerCPPg++9.4.0Error
Apr 18, 2024 22:34Joad NacerJoad NacerCPPg++9.4.0Error
Apr 18, 2024 22:32Joad NacerJoad NacerCPPg++9.4.0Success7,716
Apr 18, 2024 22:29Joad NacerJoad NacerCPPg++9.4.0Error
Apr 18, 2024 22:26Joad NacerJoad NacerCPPg++9.4.0Success7,809
Apr 18, 2024 22:25Joad NacerJoad NacerCPPg++9.4.0Success7,866
Apr 18, 2024 22:18Joad NacerJoad NacerCPPg++9.4.0Success7,787
Apr 18, 2024 22:18Joad NacerJoad NacerCPPg++9.4.0Success7,963
Apr 18, 2024 22:18Joad NacerJoad NacerCPPclang++10.0.0Success7,603+33.38 RP
Apr 18, 2024 22:17Joad NacerJoad NacerCPPg++9.4.0Success7,801+17.18 RP
Apr 18, 2024 22:11Joad NacerJoad NacerCPPg++9.4.0Success8,256
Apr 18, 2024 22:04Joad NacerJoad NacerCPPg++9.4.0Success8,189
Apr 18, 2024 22:00Joad NacerJoad NacerCPPclang++10.0.0Success7,907+352.71 RP
Apr 18, 2024 21:58Joad NacerJoad NacerCPPclang++10.0.0Success10,965+1.66 RP
Apr 18, 2024 21:56Joad NacerJoad NacerCPPclang++10.0.0Success10,985+5.44 RP
Apr 18, 2024 21:50Joad NacerJoad NacerCPPclang++10.0.0Error
Apr 18, 2024 21:45Joad NacerJoad NacerCPPclang++10.0.0Error
Apr 18, 2024 21:41Joad NacerJoad NacerCPPclang++10.0.0Error
Apr 18, 2024 21:33Joad NacerJoad NacerCPPclang++10.0.0Error
Apr 18, 2024 21:23Joad NacerJoad NacerCPPclang++10.0.0Error
Apr 18, 2024 21:18Joad NacerJoad NacerCPPclang++10.0.0Error
Apr 18, 2024 21:12Joad NacerJoad NacerCPPclang++10.0.0Error
Apr 18, 2024 21:06Joad NacerJoad NacerCPPclang++10.0.0Error
Apr 18, 2024 21:01Joad NacerJoad NacerCPPclang++10.0.0Error
Apr 18, 2024 20:49Joad NacerJoad NacerCPPclang++10.0.0Success13,310
Apr 18, 2024 20:49Joad NacerJoad NacerCPPg++9.4.0Success11,051+904.90 RP