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 02:28olliecrowolliecrowScore: 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 02:293,14669,392,48534,606,00002,396,160
2Mar 30, 2026 02:343,14660,009,06434,609,00002,404,352
3Mar 30, 2026 02:243,14761,161,92633,604,0001,018,0002,404,352
4Mar 30, 2026 02:223,14861,037,54233,615,0001,018,0002,400,256
5Mar 30, 2026 02:203,14965,499,66533,623,0001,018,0002,277,376
6Mar 30, 2026 02:293,15164,655,27133,637,0001,019,0002,396,160
7Mar 30, 2026 02:243,15261,962,95733,656,0001,019,0002,408,448
8Mar 30, 2026 02:233,15360,328,39434,686,00002,400,256
9Mar 30, 2026 02:213,15460,396,18934,697,00002,277,376
10Mar 30, 2026 02:303,16561,250,75532,828,0001,989,0002,277,376
11Mar 30, 2026 02:273,16761,460,02133,846,000995,0002,400,256
12Mar 30, 2026 02:263,16756,125,40632,842,0001,990,0002,482,176
13Mar 30, 2026 02:203,16861,852,25734,849,00002,400,256
14Mar 30, 2026 02:203,16867,621,35632,856,0001,991,0002,277,376
15Mar 30, 2026 02:323,16861,716,71132,857,0001,991,0002,273,280
16Mar 30, 2026 02:273,16858,312,49832,860,0001,991,0002,277,376
17Mar 30, 2026 02:323,16862,750,26733,856,000995,0002,396,160
18Mar 30, 2026 02:233,16859,703,94333,850,000995,0002,277,376
19Mar 30, 2026 02:223,16860,467,56033,852,000995,0002,277,376
20Mar 30, 2026 02:213,16863,859,45234,843,00002,277,376
21Mar 30, 2026 02:223,16867,976,87332,859,0001,991,0002,277,376
22Mar 30, 2026 02:213,16866,721,82133,857,000995,0002,392,064
23Mar 30, 2026 02:303,16963,603,64032,868,0001,992,0002,400,256
24Mar 30, 2026 02:343,16962,144,65433,859,000995,0002,277,376
25Mar 30, 2026 02:293,16960,701,66233,867,000996,0002,404,352
26Mar 30, 2026 02:343,16960,487,57034,854,00002,400,256
27Mar 30, 2026 02:293,16966,418,84432,868,0001,992,0002,400,256
28Mar 30, 2026 02:293,16959,698,53234,862,00002,400,256
29Mar 30, 2026 02:283,16968,126,91233,865,000996,0002,277,376
30Mar 30, 2026 02:223,16966,126,59832,863,0001,991,0002,396,160
31Mar 30, 2026 02:333,16960,368,92933,868,000996,0002,396,160
32Mar 30, 2026 02:223,16965,096,26033,863,000995,0002,277,376
33Mar 30, 2026 02:333,17064,728,18133,871,000996,0002,400,256
34Mar 30, 2026 02:343,17063,335,04034,866,00002,277,376
35Mar 30, 2026 02:333,17066,819,62532,874,0001,992,0002,277,376
36Mar 30, 2026 02:273,17064,495,71633,872,000996,0002,510,848
37Mar 30, 2026 02:273,17064,343,02133,871,000996,0002,277,376
38Mar 30, 2026 02:223,17065,155,51032,882,0001,992,0002,277,376
39Mar 30, 2026 02:353,17260,449,28533,870,0001,026,0002,277,376
40Mar 30, 2026 02:353,17262,196,96334,893,00002,277,376
41Mar 30, 2026 02:263,17263,185,83932,897,0001,993,0002,404,352
42Mar 30, 2026 02:203,17360,219,90032,914,0001,994,0002,400,256
43Mar 30, 2026 02:273,17454,479,51832,923,0001,995,0002,277,376
44Mar 30, 2026 02:203,17461,297,88032,923,0001,995,0002,396,160
45Mar 30, 2026 02:353,17661,427,10032,941,0001,996,0002,400,256
46Mar 30, 2026 02:283,17661,052,36133,938,000998,0002,396,160
47Mar 30, 2026 02:203,17657,518,48432,942,0001,996,0002,396,160
48Mar 30, 2026 02:343,17663,026,30233,936,000998,0002,404,352
49Mar 30, 2026 02:323,17759,130,98332,947,0001,996,0002,277,376
50Mar 30, 2026 02:283,17856,668,83033,960,000998,0002,396,160
51Mar 30, 2026 02:343,17962,948,25233,973,000999,0002,273,280
52Mar 30, 2026 02:233,17955,568,89933,973,000999,0002,277,376
53Mar 30, 2026 02:303,17959,325,61833,968,000999,0002,277,376
54Mar 30, 2026 02:263,18058,672,91532,982,0001,998,0002,277,376
55Mar 30, 2026 02:243,18264,405,91133,006,0002,000,0002,277,376
56Mar 30, 2026 02:293,18460,408,57533,024,0002,001,0002,486,272
57Mar 30, 2026 02:273,18955,072,81733,073,0002,004,0002,396,160