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
Back to listMar 30, 2026 08:16olliecrowolliecrowScore: 3,169Success
Source Code

Source code access is restricted. Log in to request access.

Challenge History

No challenges yet.

Run Statistics
#DateScoreWall TimeCPU UserCPU SystemMemoryError
1Mar 30, 2026 08:153,15059,904,68433,636,0001,019,0002,277,376
2Mar 30, 2026 08:173,15065,564,03134,650,00002,277,376
3Mar 30, 2026 08:143,15158,435,59834,665,00002,277,376
4Mar 30, 2026 08:133,15163,597,65034,661,00002,392,064
5Mar 30, 2026 08:123,15266,650,56933,650,0001,019,0002,277,376
6Mar 30, 2026 08:123,15261,683,81734,672,00002,277,376
7Mar 30, 2026 08:233,15260,748,79134,668,00002,277,376
8Mar 30, 2026 08:213,15359,159,21433,659,0001,019,0002,400,256
9Mar 30, 2026 08:133,15460,322,59734,689,00002,277,376
10Mar 30, 2026 08:123,15661,115,77734,716,00002,277,376
11Mar 30, 2026 08:133,16464,350,14432,819,0001,989,0002,408,448
12Mar 30, 2026 08:143,16561,528,57232,825,0001,989,0002,277,376
13Mar 30, 2026 08:143,16664,927,87632,841,0001,990,0002,392,064
14Mar 30, 2026 08:183,16760,199,78832,851,0001,990,0002,277,376
15Mar 30, 2026 08:213,16763,910,60933,846,000995,0002,396,160
16Mar 30, 2026 08:183,16762,989,67334,840,00002,277,376
17Mar 30, 2026 08:183,16762,551,60533,838,000995,0002,392,064
18Mar 30, 2026 08:113,16760,330,22133,840,000995,0002,277,376
19Mar 30, 2026 08:113,16760,670,08133,839,000995,0002,277,376
20Mar 30, 2026 08:193,16862,173,72732,853,0001,991,0002,277,376
21Mar 30, 2026 08:113,16861,139,50232,855,0001,991,0002,400,256
22Mar 30, 2026 08:153,16860,798,18233,854,000995,0002,510,848
23Mar 30, 2026 08:163,16862,596,25432,859,0001,991,0002,392,064
24Mar 30, 2026 08:163,16859,940,13733,848,000995,0002,277,376
25Mar 30, 2026 08:183,16965,073,34733,862,000995,0002,277,376
26Mar 30, 2026 08:193,16967,538,58632,866,0001,991,0002,277,376
27Mar 30, 2026 08:203,16962,598,75533,865,000996,0002,396,160
28Mar 30, 2026 08:143,16961,148,55632,863,0001,991,0002,277,376
29Mar 30, 2026 08:233,16963,284,08533,860,000995,0002,396,160
30Mar 30, 2026 08:163,17063,330,95932,873,0001,992,0002,277,376
31Mar 30, 2026 08:183,17059,700,09233,878,000996,0002,392,064
32Mar 30, 2026 08:223,17064,662,13434,866,00002,400,256
33Mar 30, 2026 08:173,17059,381,67733,871,000996,0002,400,256
34Mar 30, 2026 08:223,17065,023,15333,877,000996,0002,396,160
35Mar 30, 2026 08:113,17056,765,07732,874,0001,992,0002,404,352
36Mar 30, 2026 08:233,17158,513,49432,889,0001,993,0002,277,376
37Mar 30, 2026 08:133,17157,000,19632,891,0001,993,0002,277,376
38Mar 30, 2026 08:173,17260,767,56033,896,000996,0002,277,376
39Mar 30, 2026 08:203,17361,773,91333,909,000997,0002,392,064
40Mar 30, 2026 08:203,17460,317,79932,924,0001,995,0002,392,064
41Mar 30, 2026 08:113,17557,168,79933,924,000997,0002,277,376
42Mar 30, 2026 08:203,17756,598,15033,950,000998,0002,277,376
43Mar 30, 2026 08:203,18058,031,98632,986,0001,999,0002,277,376
44Mar 30, 2026 08:203,18162,363,51133,992,000999,0002,277,376
45Mar 30, 2026 08:143,18160,834,57332,991,0001,999,0002,277,376
46Mar 30, 2026 08:113,18158,473,11234,991,00002,392,064
47Mar 30, 2026 08:213,18258,994,85434,005,0001,000,0002,277,376
48Mar 30, 2026 08:183,18257,543,66933,001,0002,000,0002,277,376
49Mar 30, 2026 08:153,18356,859,22733,015,0002,000,0002,277,376
50Mar 30, 2026 08:133,18358,806,14033,017,0002,001,0002,277,376
51Mar 30, 2026 08:193,18456,568,52333,023,0002,001,0002,392,064
52Mar 30, 2026 08:163,18459,062,30534,022,0001,000,0002,277,376
53Mar 30, 2026 08:143,18560,335,62533,029,0002,001,0002,416,640
54Mar 30, 2026 08:223,18658,695,12033,041,0002,002,0002,277,376
55Mar 30, 2026 08:163,18760,075,71134,060,0001,001,0002,404,352
56Mar 30, 2026 08:163,18761,897,12133,054,0002,003,0002,490,368
57Mar 30, 2026 08:133,19562,181,83933,136,0002,008,0002,277,376