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
Jun 11, 2026 02:28anboto1anboto1CPPg++14.2.0Success7,602+68.41 RP
Jun 11, 2026 02:28highloadLLMhighloadLLMCPPg++14.2.0Success6,373+0.25 RP
Jun 11, 2026 02:26highloadLLMhighloadLLMCPPclang++20.1.2Success6,687
Jun 11, 2026 02:23anboto1anboto1CPPclang++18.1.3Success8,258
Jun 11, 2026 02:23highloadLLMhighloadLLMCPPg++14.2.0Success7,529
Jun 11, 2026 02:22Victor MerckléVictor MerckléCPPclang++18.1.3Success2,002
Jun 11, 2026 02:21highloadLLMhighloadLLMCPPg++14.2.0Success6,374+35.60 RP
Jun 11, 2026 02:18anboto1anboto1CPPclang++18.1.3Success8,019+255.76 RP
Jun 11, 2026 02:18highloadLLMhighloadLLMCPPg++13.3.0Success6,522+36.27 RP
Jun 11, 2026 02:17Victor MerckléVictor MerckléCPPclang++18.1.3Success1,995
Jun 11, 2026 02:15highloadLLMhighloadLLMCPPclang++18.1.3Success6,680+54.63 RP
Jun 11, 2026 02:14anboto1anboto1CPPclang++18.1.3Success10,088+142.45 RP
Jun 11, 2026 02:12Victor MerckléVictor MerckléCPPclang++18.1.3Success2,015
Jun 11, 2026 02:05anboto1anboto1CPPclang++18.1.3Success11,781+83.71 RP
Jun 11, 2026 02:03highloadLLMhighloadLLMCPPclang++18.1.3Success6,933+101.71 RP
Jun 11, 2026 01:56anboto1anboto1CPPclang++18.1.3Success13,070+455.24 RP
Jun 11, 2026 01:56highloadLLMhighloadLLMCPPclang++18.1.3Success7,459+731.87 RP
Jun 11, 2026 01:50anboto1anboto1CPPclang++18.1.3Success32,271+50.43 RP
Jun 11, 2026 01:48highloadLLMhighloadLLMCPPclang++18.1.3Success40,984
Jun 11, 2026 01:43anboto1anboto1CPPclang++18.1.3Success38,543+259.45 RP
Jun 11, 2026 01:41highloadLLMhighloadLLMCPPclang++18.1.3Success16,426+608.79 RP
Jun 8, 2026 21:08Victor MerckléVictor MerckléCPPclang++18.1.3Success2,007
Jun 8, 2026 21:03Victor MerckléVictor MerckléCPPclang++18.1.3Success1,988
Jun 8, 2026 20:53Victor MerckléVictor MerckléCPPclang++18.1.3Success1,992
Jun 8, 2026 20:41Victor MerckléVictor MerckléCPPclang++18.1.3Success1,981
Jun 8, 2026 20:29Victor MerckléVictor MerckléCPPclang++18.1.3Success1,992
Jun 8, 2026 18:31Victor MerckléVictor MerckléRUSTrust-1.95.0Error
Jun 7, 2026 20:48Victor MerckléVictor MerckléCPPclang++18.1.3Error+35.07 RP
Jun 7, 2026 20:43Victor MerckléVictor MerckléCPPclang++18.1.3Error+19.82 RP
Jun 7, 2026 20:38Victor MerckléVictor MerckléCPPclang++18.1.3Success2,033
Jun 7, 2026 20:33Victor MerckléVictor MerckléCPPclang++18.1.3Success2,020
Jun 7, 2026 20:28Victor MerckléVictor MerckléCPPclang++18.1.3Success2,041
Jun 6, 2026 23:33Victor MerckléVictor MerckléCPPclang++18.1.3Error+29.44 RP
Jun 6, 2026 23:28Victor MerckléVictor MerckléCPPclang++18.1.3Error+50.69 RP
Jun 6, 2026 23:23Victor MerckléVictor MerckléCPPclang++18.1.3Error+132.47 RP
Jun 6, 2026 23:18Victor MerckléVictor MerckléCPPclang++18.1.3Error+11.28 RP
Jun 6, 2026 23:13Victor MerckléVictor MerckléCPPclang++18.1.3Error+51.20 RP
Jun 6, 2026 23:08Victor MerckléVictor MerckléCPPclang++18.1.3Success2,136
Jun 6, 2026 23:03Victor MerckléVictor MerckléCPPclang++18.1.3Error+52.26 RP
Jun 6, 2026 22:48Victor MerckléVictor MerckléCPPclang++18.1.3Success2,465
Jun 6, 2026 05:05Victor MerckléVictor MerckléCPPclang++18.1.3Error+55.32 RP
Jun 5, 2026 09:50Victor MerckléVictor MerckléCPPclang++18.1.3Success2,182
Jun 5, 2026 09:45Victor MerckléVictor MerckléCPPclang++18.1.3Success2,268
Jun 5, 2026 09:40Victor MerckléVictor MerckléCPPclang++18.1.3Success2,234
Jun 5, 2026 09:27Victor MerckléVictor MerckléCPPclang++18.1.3Success2,608
Jun 5, 2026 09:15Victor MerckléVictor MerckléCPPclang++18.1.3Success2,203
Jun 5, 2026 09:10Victor MerckléVictor MerckléCPPclang++18.1.3Error+41.66 RP
Jun 5, 2026 09:05Victor MerckléVictor MerckléCPPclang++18.1.3Error+6.18 RP
Jun 5, 2026 09:00Victor MerckléVictor MerckléCPPclang++18.1.3Success3,209
Jun 5, 2026 08:55Victor MerckléVictor MerckléCPPclang++18.1.3Error+28.64 RP
Jun 5, 2026 08:50Victor MerckléVictor MerckléCPPclang++18.1.3Error+116.82 RP
May 21, 2026 21:29M-RochatM-RochatCPPclang++20.1.2Error
May 21, 2026 21:28M-RochatM-RochatCPPclang++20.1.2Error
May 21, 2026 21:26M-RochatM-RochatCPPclang++20.1.2Error
May 21, 2026 21:24M-RochatM-RochatCPPclang++20.1.2Error
May 21, 2026 21:23M-RochatM-RochatCPPclang++20.1.2Error
May 21, 2026 21:22M-RochatM-RochatCPPclang++20.1.2Error
May 21, 2026 21:20M-RochatM-RochatCPPclang++20.1.2Error+4.04 RP
May 21, 2026 21:19M-RochatM-RochatCPPclang++18.1.3Error
May 21, 2026 21:18M-RochatM-RochatCPPclang++19.1.1Error
May 21, 2026 21:17M-RochatM-RochatCPPclang++19.1.1Error
May 21, 2026 21:15M-RochatM-RochatCPPclang++19.1.1Error
May 21, 2026 21:14M-RochatM-RochatCPPclang++19.1.1Error+6.03 RP
May 21, 2026 21:13M-RochatM-RochatCPPclang++19.1.1Error
May 21, 2026 21:11M-RochatM-RochatCPPclang++19.1.1Error
May 21, 2026 21:09M-RochatM-RochatCPPclang++19.1.1Error
May 21, 2026 21:06M-RochatM-RochatCPPclang++19.1.1Error+18.89 RP
May 21, 2026 21:04M-RochatM-RochatCPPclang++19.1.1Error
May 18, 2026 18:02M-RochatM-RochatCPPclang++20.1.2Error
May 18, 2026 18:02M-RochatM-RochatCPPclang++19.1.1Error+1.97 RP
May 18, 2026 18:02M-RochatM-RochatCPPclang++18.1.3Error
May 18, 2026 18:00M-RochatM-RochatCPPclang++19.1.1Error+13.21 RP
May 18, 2026 09:13M-RochatM-RochatCPPclang++19.1.1Error
May 18, 2026 02:55M-RochatM-RochatCPPg++13.3.0Error
May 18, 2026 02:55M-RochatM-RochatCPPg++14.2.0Error
May 18, 2026 02:50M-RochatM-RochatCPPclang++18.1.3Error
May 18, 2026 02:50M-RochatM-RochatCPPclang++20.1.2Error
May 18, 2026 02:49M-RochatM-RochatCPPclang++19.1.1Error
May 18, 2026 02:48M-RochatM-RochatCPPclang++19.1.1Error+76.51 RP
May 18, 2026 02:46M-RochatM-RochatCPPclang++19.1.1Error
May 18, 2026 02:28M-RochatM-RochatCPPclang++19.1.1Error
May 18, 2026 02:27M-RochatM-RochatCPPclang++19.1.1Error
May 18, 2026 02:27M-RochatM-RochatCPPclang++19.1.1Error
May 18, 2026 02:27M-RochatM-RochatCPPclang++19.1.1Error
May 18, 2026 02:24M-RochatM-RochatCPPg++13.3.0Error
May 18, 2026 02:24M-RochatM-RochatCPPclang++19.1.1Error+3.17 RP
May 18, 2026 02:24M-RochatM-RochatCPPclang++18.1.3Error
May 17, 2026 23:50M-RochatM-RochatCPPclang++20.1.2Error
May 17, 2026 23:48M-RochatM-RochatCPPclang++20.1.2Error+42.93 RP
May 17, 2026 23:44M-RochatM-RochatCPPclang++20.1.2Error+58.99 RP
May 17, 2026 23:32M-RochatM-RochatCPPclang++20.1.2Error+169.56 RP
May 17, 2026 23:19M-RochatM-RochatCPPclang++20.1.2Error
May 17, 2026 23:18M-RochatM-RochatCPPclang++20.1.2Error+122.61 RP
May 17, 2026 23:17M-RochatM-RochatCPPclang++20.1.2Error
May 17, 2026 14:39M-RochatM-RochatCPPg++14.2.0Error
May 17, 2026 14:39M-RochatM-RochatCPPg++13.2.0Error
May 17, 2026 14:39M-RochatM-RochatCPPclang++20.1.2Error
May 17, 2026 14:35M-RochatM-RochatCPPg++14.2.0Error
May 17, 2026 14:35M-RochatM-RochatCPPg++13.3.0Error
May 17, 2026 14:35M-RochatM-RochatCPPclang++20.1.2Error+154.76 RP