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 2, 2025 15:44Alex KentAlex KentCPPg++13.3.0Error
Sep 2, 2025 14:08Alex KentAlex KentCPPg++13.3.0Error
Sep 2, 2025 14:03Alex KentAlex KentCPPg++13.3.0Error+69.69 RP
Sep 2, 2025 13:29Alex KentAlex KentCPPg++13.3.0Error+59.83 RP
Sep 2, 2025 12:56Alex KentAlex KentCPPg++13.3.0Error+142.08 RP
Sep 2, 2025 12:29Alex KentAlex KentCPPg++13.3.0Error
Sep 2, 2025 12:09Alex KentAlex KentCPPg++13.3.0Error
Sep 2, 2025 11:57Alex KentAlex KentCPPg++13.3.0Error
Sep 2, 2025 06:13Alex KentAlex KentCPPg++13.3.0Error+15.52 RP
Sep 2, 2025 06:12Alex KentAlex KentCPPg++13.3.0Error+5.52 RP
Sep 2, 2025 05:45Alex KentAlex KentCPPg++13.3.0Error
Sep 2, 2025 05:32Yuriy LyfenkoYuriy LyfenkoCPPg++13.3.0Error
Sep 2, 2025 05:26Alex KentAlex KentCPPg++13.3.0Error+221.23 RP
Sep 2, 2025 05:23Yuriy LyfenkoYuriy LyfenkoCPPg++13.3.0Success3,954
Sep 2, 2025 05:21Yuriy LyfenkoYuriy LyfenkoCPPg++13.3.0Error
Sep 2, 2025 05:20Yuriy LyfenkoYuriy LyfenkoCPPg++13.3.0Error
Sep 2, 2025 05:20Yuriy LyfenkoYuriy LyfenkoCPPg++13.3.0Error
Sep 2, 2025 05:19Yuriy LyfenkoYuriy LyfenkoCPPg++13.3.0Error
Sep 2, 2025 05:16Yuriy LyfenkoYuriy LyfenkoCPPg++13.3.0Error
Sep 2, 2025 05:14Yuriy LyfenkoYuriy LyfenkoCPPg++13.3.0Error
Sep 2, 2025 05:13Yuriy LyfenkoYuriy LyfenkoCPPg++13.3.0Error
Sep 2, 2025 05:12Yuriy LyfenkoYuriy LyfenkoCPPg++13.3.0Success3,936
Sep 2, 2025 05:06Yuriy LyfenkoYuriy LyfenkoCPPg++13.3.0Error
Sep 2, 2025 05:03Yuriy LyfenkoYuriy LyfenkoCPPg++13.3.0Error
Sep 2, 2025 04:59Yuriy LyfenkoYuriy LyfenkoCPPg++13.3.0Error
Sep 2, 2025 04:34Alex KentAlex KentCPPg++13.3.0Error+32.52 RP
Sep 2, 2025 04:19Alex KentAlex KentCPPg++13.3.0Error+646.87 RP
Sep 1, 2025 15:08Alex KentAlex KentCPPg++13.3.0Error+4.43 RP
Sep 1, 2025 15:07Alex KentAlex KentCPPg++13.3.0Error+9.17 RP
Sep 1, 2025 14:48Alex KentAlex KentCPPg++13.3.0Error+222.20 RP
Sep 1, 2025 14:44Alex KentAlex KentCPPg++13.3.0Error
Sep 1, 2025 14:07Alex KentAlex KentCPPg++13.3.0Error+420.21 RP
Aug 31, 2025 13:52Alex KentAlex KentCPPg++13.3.0Success397,630+1.57 RP
Aug 31, 2025 13:47Alex KentAlex KentCPPg++13.3.0Success424,056+0.18 RP
Aug 31, 2025 13:20Alex KentAlex KentCPPg++13.3.0Success427,254+0.54 RP
Aug 31, 2025 13:03Alex KentAlex KentCPPg++13.3.0Success437,417+6.51 RP
Aug 31, 2025 05:28Alex KentAlex KentCPPg++13.3.0Error
Aug 31, 2025 05:22Alex KentAlex KentCPPg++13.3.0Success611,614+16.35 RP
Aug 18, 2025 07:07Andrey NikolaevAndrey NikolaevRUSTrust-1.89.0Success46,922
Aug 18, 2025 07:03Andrey NikolaevAndrey NikolaevRUSTrust-1.89.0Success41,768+239.42 RP
Aug 18, 2025 07:01Andrey NikolaevAndrey NikolaevRUSTrust-1.89.0Error
Aug 14, 2025 19:54Aniruddha DebAniruddha DebCPPclang++18.1.3Error+2.31 RP
Aug 14, 2025 19:53Aniruddha DebAniruddha DebCPPclang++18.1.3Error
Aug 14, 2025 19:52Aniruddha DebAniruddha DebCPPclang++18.1.3Error
Aug 14, 2025 19:48Aniruddha DebAniruddha DebCPPclang++18.1.3Error+161.00 RP
Aug 14, 2025 19:47Aniruddha DebAniruddha DebCPPclang++18.1.3Error
Aug 14, 2025 19:45Aniruddha DebAniruddha DebCPPclang++18.1.3Error+2.73 RP
Aug 14, 2025 19:39Aniruddha DebAniruddha DebCPPclang++18.1.3Error
Aug 14, 2025 19:38Aniruddha DebAniruddha DebCPPclang++18.1.3Error+2.72 RP
Aug 14, 2025 18:11Aniruddha DebAniruddha DebCPPclang++18.1.3Error
Aug 14, 2025 18:08Aniruddha DebAniruddha DebCPPclang++18.1.3Error+16.90 RP
Aug 14, 2025 18:05Aniruddha DebAniruddha DebCPPclang++18.1.3Error+25.93 RP
Aug 14, 2025 18:03Aniruddha DebAniruddha DebCPPclang++18.1.3Error
Aug 14, 2025 18:02Aniruddha DebAniruddha DebCPPclang++18.1.3Error+3.29 RP
Aug 14, 2025 17:59Aniruddha DebAniruddha DebCPPclang++18.1.3Error+11.11 RP
Aug 14, 2025 17:32Aniruddha DebAniruddha DebCPPclang++18.1.3Error
Aug 13, 2025 22:56Aniruddha DebAniruddha DebCPPclang++18.1.3Error+289.60 RP
Aug 13, 2025 22:54Aniruddha DebAniruddha DebCPPg++13.3.0Error+23.28 RP
Aug 13, 2025 22:53Aniruddha DebAniruddha DebCPPg++13.3.0Error
Aug 13, 2025 22:52Aniruddha DebAniruddha DebCPPg++13.3.0Error
Aug 13, 2025 22:52Aniruddha DebAniruddha DebCPPg++13.3.0Error
Aug 13, 2025 22:52Aniruddha DebAniruddha DebCPPg++13.3.0Error
Aug 13, 2025 22:50Aniruddha DebAniruddha DebCPPg++13.3.0Error+241.73 RP
Aug 13, 2025 22:46Aniruddha DebAniruddha DebCPPg++13.3.0Success437,338
Aug 13, 2025 18:45Leon ZhaoLeon ZhaoCPPg++13.3.0Success610,811+16.37 RP
Aug 10, 2025 22:03Aniruddha DebAniruddha DebCPPg++13.3.0Error
Aug 10, 2025 21:25Aniruddha DebAniruddha DebCPPg++13.3.0Error+35.24 RP
Aug 10, 2025 21:17Aniruddha DebAniruddha DebCPPg++13.3.0Error
Aug 10, 2025 21:13Aniruddha DebAniruddha DebCPPg++13.3.0Error+31.78 RP
Aug 10, 2025 21:06Aniruddha DebAniruddha DebCPPg++13.3.0Error
Aug 10, 2025 20:53Aniruddha DebAniruddha DebCPPg++13.3.0Error
Aug 10, 2025 16:37Aniruddha DebAniruddha DebCPPg++13.3.0Error
Aug 10, 2025 16:25Aniruddha DebAniruddha DebCPPg++13.3.0Error
Aug 10, 2025 16:24Aniruddha DebAniruddha DebCPPg++13.3.0Error
Aug 10, 2025 16:22Aniruddha DebAniruddha DebCPPg++13.3.0Error
Aug 10, 2025 14:07Aniruddha DebAniruddha DebCPPg++13.3.0Error
Aug 10, 2025 14:06Aniruddha DebAniruddha DebCPPg++13.3.0Error
Aug 10, 2025 14:04Aniruddha DebAniruddha DebCPPg++13.3.0Error
Aug 10, 2025 14:03Aniruddha DebAniruddha DebCPPg++13.3.0Error
Aug 10, 2025 14:03Aniruddha DebAniruddha DebCPPg++13.3.0Error
Aug 10, 2025 14:01Aniruddha DebAniruddha DebCPPg++13.3.0Error
Aug 9, 2025 17:23Aniruddha DebAniruddha DebCPPg++13.3.0Error
Aug 9, 2025 17:20Aniruddha DebAniruddha DebCPPg++13.3.0Error
Aug 9, 2025 17:19Aniruddha DebAniruddha DebCPPg++13.3.0Error
Aug 9, 2025 17:01Aniruddha DebAniruddha DebCPPg++13.3.0Error
Aug 9, 2025 16:57Aniruddha DebAniruddha DebCPPg++13.3.0Error
Aug 9, 2025 11:26Aniruddha DebAniruddha DebCPPg++13.3.0Error+46.85 RP
Aug 9, 2025 11:25Aniruddha DebAniruddha DebCPPg++13.3.0Error
Aug 9, 2025 11:05Aniruddha DebAniruddha DebCPPg++13.3.0Error
Aug 9, 2025 11:02Aniruddha DebAniruddha DebCPPg++13.3.0Error
Jul 9, 2025 21:56Aniruddha DebAniruddha DebCPPg++13.3.0Error+22.41 RP
Jul 9, 2025 06:16Aniruddha DebAniruddha DebCPPg++13.3.0Error+85.81 RP
Jul 9, 2025 06:08Aniruddha DebAniruddha DebCPPg++13.3.0Error
Jun 21, 2025 19:55Aniruddha DebAniruddha DebCPPg++13.3.0Error
Jun 21, 2025 19:54Aniruddha DebAniruddha DebCPPg++13.3.0Error
May 31, 2025 15:33KeefeKeefeCPPclang++18.1.3Success27,430+24.88 RP
May 30, 2025 07:28Aniruddha DebAniruddha DebCPPg++13.3.0Error
May 30, 2025 07:23Aniruddha DebAniruddha DebCPPg++13.3.0Error
May 30, 2025 07:23Aniruddha DebAniruddha DebCPPg++13.3.0Error
May 30, 2025 06:31Aniruddha DebAniruddha DebCPPg++13.3.0Error+12.81 RP