Order book Yuriy Lyfenko

Simulate a sell-side order book and calculate the cost of a final purchase as fast as possible.

Input

1,000,000 order updates on STDIN, one per line:

  • + <price> <size> – add a new sell order
  • - <position> – delete the order at the given position
  • = <size> – buy <size> shares from the top of the order book

After all updates are processed, buy 1,000 shares from the top of the order book.

Output

Print the total cost of the final 1,000-share purchase to STDOUT.

Order Book Rules

Orders are sorted by price ascending (lower is better). Orders at the same price are sorted by arrival time (earlier first). Position 0 is the best (lowest-price) offer.

The = (buy) operation consumes shares starting from position 0. If an order is fully consumed, it is removed from the book.

Example

Input Order book state
+ 1137 100 (1137,100)
+ 1130 10 (1130,10), (1137,100)
+ 1130 50 (1130,10), (1130,50), (1137,100)
- 0 (1130,50), (1137,100)
+ 1150 200 (1130,50), (1137,100), (1150,200)
= 200 (1150,150)

Total cost of the last buy: 50 * 1130 + 100 * 1137 + 50 * 1150.

Back to listDec 21, 2025 23:08HattonuriHattonuriScore: 31,143Success
Source Code

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

Challenge History

No challenges yet.

Run Statistics
#DateScoreWall TimeCPU UserCPU SystemMemoryError
1Dec 22, 2025 00:2129,53832,553,60416,125,0001,007,0002,347,008
2Dec 21, 2025 23:0329,56939,092,09816,142,0001,008,0002,351,104
3Dec 22, 2025 00:1429,60337,154,21515,150,0002,020,0002,347,008
4Dec 21, 2025 23:0329,81640,405,01417,293,00002,342,912
5Dec 22, 2025 00:1729,83637,860,35117,305,00002,510,848
6Dec 21, 2025 23:0529,90536,236,24217,345,00002,330,624
7Dec 21, 2025 23:0929,90545,780,01716,325,0001,020,0002,338,816
8Dec 21, 2025 23:0329,91941,474,90517,353,00002,506,752
9Dec 21, 2025 23:0329,92443,684,02917,356,00002,519,040
10Dec 21, 2025 23:0330,09140,764,69517,453,00002,510,848
11Dec 21, 2025 23:0930,09341,131,78517,454,00002,318,336
12Dec 22, 2025 00:2130,11039,232,24917,464,00002,510,848
13Dec 21, 2025 23:0230,13439,214,59916,450,0001,028,0002,318,336
14Dec 21, 2025 23:0830,15232,571,54817,488,00002,510,848
15Dec 22, 2025 00:1430,20242,661,48317,517,00002,342,912
16Dec 21, 2025 23:0430,21045,775,01516,492,0001,030,0002,310,144
17Dec 21, 2025 23:0130,28338,717,24917,564,00002,478,080
18Dec 21, 2025 23:0230,31737,750,91616,550,0001,034,0002,486,272
19Dec 21, 2025 23:0130,32940,017,76616,557,0001,034,0002,510,848
20Dec 22, 2025 00:1330,35341,063,10717,605,00002,506,752
21Dec 22, 2025 00:1530,37139,799,98017,615,00002,428,928
22Dec 22, 2025 00:2130,39133,624,92416,591,0001,036,0002,527,232
23Dec 21, 2025 23:0230,40543,568,13117,635,00002,330,624
24Dec 21, 2025 23:3830,45341,881,04517,663,00002,330,624
25Dec 22, 2025 00:1330,45743,542,70117,665,00002,330,624
26Dec 21, 2025 23:0530,46646,438,84617,670,00002,506,752
27Dec 22, 2025 00:2130,49043,783,04616,644,0001,040,0002,330,624
28Dec 21, 2025 23:1530,49143,106,18217,685,00002,310,144
29Dec 21, 2025 23:0230,50241,205,02017,691,00002,502,656
30Dec 21, 2025 23:0230,50745,060,36016,654,0001,040,0002,326,528
31Dec 21, 2025 23:0930,50742,530,78017,694,00002,301,952
32Dec 22, 2025 00:1530,52840,613,98816,665,0001,041,0002,314,240
33Dec 21, 2025 23:0130,56643,789,62117,728,00002,506,752
34Dec 22, 2025 00:1530,56735,529,06316,687,0001,042,0002,510,848
35Dec 22, 2025 00:2130,57943,386,36017,736,00002,310,144
36Dec 21, 2025 23:0930,59145,955,15117,743,00002,301,952
37Dec 21, 2025 23:1030,60035,652,18117,748,00002,490,368
38Dec 22, 2025 00:1530,60945,668,31817,753,00002,506,752
39Dec 22, 2025 00:1330,61038,998,54716,710,0001,044,0002,510,848
40Dec 21, 2025 23:0330,61945,124,47017,759,00002,506,752
41Dec 21, 2025 23:0330,62644,743,26317,763,00002,494,464
42Dec 21, 2025 23:0430,70247,665,04116,818,000989,0002,306,048
43Dec 21, 2025 23:0830,79733,954,70416,870,000992,0002,498,560
44Dec 22, 2025 00:1430,87145,417,70716,911,000994,0002,473,984
45Dec 21, 2025 23:0430,87242,222,99916,912,000994,0002,453,504
46Dec 21, 2025 23:0430,87443,509,90016,913,000994,0002,449,408
47Dec 21, 2025 23:0130,87941,183,71316,915,000995,0002,301,952
48Dec 21, 2025 23:0530,88650,325,33816,919,000995,0002,510,848
49Dec 21, 2025 23:0130,88843,585,96817,915,00002,510,848
50Dec 21, 2025 23:0230,88846,688,70516,920,000995,0002,478,080
51Dec 21, 2025 23:0330,88841,023,70015,925,0001,990,0002,510,848
52Dec 21, 2025 23:0530,88845,691,72815,925,0001,990,0002,314,240
53Dec 22, 2025 00:1730,89142,315,46416,922,000995,0002,306,048
54Dec 22, 2025 00:1430,89736,850,58616,925,000995,0002,301,952
55Dec 21, 2025 23:0430,93138,849,73616,944,000996,0002,269,184
56Dec 21, 2025 23:0130,93343,413,98116,945,000996,0002,506,752
57Dec 21, 2025 23:0330,94343,322,46715,953,0001,994,0002,281,472
58Dec 21, 2025 23:0830,95047,867,18316,954,000997,0002,531,328
59Dec 22, 2025 00:2130,96240,047,93515,963,0001,995,0002,502,656
60Dec 22, 2025 00:1430,96634,113,49516,963,000997,0002,301,952
61Dec 21, 2025 23:0430,97244,178,58915,968,0001,996,0002,510,848
62Dec 22, 2025 00:1430,97832,441,56516,969,000998,0002,482,176
63Dec 21, 2025 23:0330,99134,900,07615,978,0001,997,0002,510,848
64Dec 21, 2025 23:0930,99542,801,36015,980,0001,997,0002,424,832
65Dec 21, 2025 23:0531,01043,397,53716,987,000999,0002,490,368
66Dec 21, 2025 23:0531,01239,248,68115,989,0001,998,0002,490,368
67Dec 22, 2025 00:2131,01245,313,35515,989,0001,998,0002,506,752
68Dec 22, 2025 00:1431,03143,441,93016,999,000999,0002,297,856
69Dec 21, 2025 23:1031,03839,183,33917,002,0001,000,0002,494,464
70Dec 21, 2025 23:0331,04737,103,89517,007,0001,000,0002,510,848
71Dec 22, 2025 00:1531,05541,208,67817,012,0001,000,0002,510,848
72Dec 22, 2025 00:2131,08342,112,64316,025,0002,003,0002,527,232
73Dec 21, 2025 23:0431,09041,340,35317,031,0001,001,0002,469,888
74Dec 22, 2025 00:1331,09338,289,06717,033,0001,001,0002,392,064
75Dec 22, 2025 00:1731,10042,265,26617,036,0001,002,0002,396,160
76Dec 22, 2025 00:2131,11241,079,79417,043,0001,002,0002,297,856
77Dec 21, 2025 23:0831,12442,407,72716,047,0002,005,0002,461,696
78Dec 21, 2025 23:0931,13849,336,72317,057,0001,003,0002,318,336
79Dec 21, 2025 23:0231,14344,669,35816,056,0002,007,0002,469,888
80Dec 21, 2025 23:0931,15043,764,03217,064,0001,003,0002,510,848
81Dec 22, 2025 00:1531,17437,055,63717,077,0001,004,0002,506,752
82Dec 21, 2025 23:0131,19838,045,69417,090,0001,005,0002,326,528
83Dec 22, 2025 00:2131,20040,524,99816,086,0002,010,0002,404,352
84Dec 22, 2025 00:1531,20742,179,02217,095,0001,005,0002,494,464
85Dec 21, 2025 23:0331,22239,693,16816,097,0002,012,0002,433,024
86Dec 21, 2025 23:0231,22840,631,86716,100,0002,012,0002,445,312
87Dec 21, 2025 23:0331,23344,668,63217,109,0001,006,0002,482,176
88Dec 21, 2025 23:0931,25239,641,25417,119,0001,007,0002,502,656
89Dec 22, 2025 00:1331,25741,928,48917,122,0001,007,0002,301,952
90Dec 21, 2025 23:0931,26740,608,75717,128,0001,007,0002,420,736
91Dec 22, 2025 00:1331,27240,743,86917,131,0001,007,0002,461,696
92Dec 22, 2025 00:1431,27939,085,43417,135,0001,007,0002,490,368
93Dec 22, 2025 00:1731,28350,610,28617,136,0001,008,0002,306,048
94Dec 21, 2025 23:0531,28638,441,37017,138,0001,008,0002,318,336
95Dec 21, 2025 23:0831,29835,327,36816,136,0002,017,0002,502,656
96Dec 21, 2025 23:0931,33141,319,20517,163,0001,009,0002,490,368
97Dec 21, 2025 23:0431,35242,502,44516,164,0002,020,0002,527,232
98Dec 21, 2025 23:0231,38850,616,03417,194,0001,011,0002,301,952
99Dec 21, 2025 23:0831,44032,094,65017,222,0001,013,0002,461,696
100Dec 22, 2025 00:2131,44334,201,45318,237,00002,445,312
101Dec 21, 2025 23:0231,45945,091,29418,246,00002,285,568
102Dec 21, 2025 23:0331,47239,342,88516,226,0002,028,0002,306,048
103Dec 21, 2025 23:1531,50936,559,57017,260,0001,015,0002,416,640
104Dec 21, 2025 23:1531,52441,281,31318,284,00002,473,984
105Dec 21, 2025 23:1031,54740,967,29117,281,0001,016,0002,482,176
106Dec 21, 2025 23:3831,55344,482,02618,301,00002,297,856
107Dec 21, 2025 23:0931,56943,212,13118,310,00002,490,368
108Dec 21, 2025 23:3831,56943,426,75717,293,0001,017,0002,494,464
109Dec 22, 2025 00:1531,56942,124,78318,310,00002,465,792
110Dec 21, 2025 23:0231,57940,772,00317,299,0001,017,0002,383,872
111Dec 21, 2025 23:3831,58445,127,83817,302,0001,017,0002,301,952
112Dec 22, 2025 00:1531,61445,754,97417,318,0001,018,0002,486,272
113Dec 22, 2025 00:1431,62641,272,21117,324,0001,019,0002,318,336
114Dec 22, 2025 00:1431,63836,811,15618,350,00002,465,792
115Dec 21, 2025 23:0231,67239,626,53618,370,00002,473,984
116Dec 21, 2025 23:0831,67238,817,70618,370,00002,478,080
117Dec 21, 2025 23:0331,69548,540,78318,383,00002,334,720
118Dec 21, 2025 23:3831,69743,320,30217,363,0001,021,0002,285,568
119Dec 21, 2025 23:0931,70035,650,72018,386,00002,478,080
120Dec 21, 2025 23:0831,75943,387,06618,420,00002,490,368
121Dec 21, 2025 23:0831,75937,412,44518,420,00002,506,752
122Dec 21, 2025 23:0431,76240,065,16918,422,00002,519,040
123Dec 22, 2025 00:1731,76436,781,95317,400,0001,023,0002,301,952
124Dec 21, 2025 23:0431,77145,608,45118,427,00002,285,568
125Dec 21, 2025 23:0331,78444,537,46916,495,0001,940,0002,469,888
126Dec 21, 2025 23:0531,78837,575,90517,413,0001,024,0002,510,848
127Dec 21, 2025 23:0831,80239,666,77717,421,0001,024,0002,457,600
128Dec 21, 2025 23:0531,81433,947,39518,452,00002,510,848
129Dec 21, 2025 23:0431,81938,158,19518,455,00002,478,080
130Dec 22, 2025 00:1731,82137,980,89017,431,0001,025,0002,375,680
131Dec 21, 2025 23:0331,82439,944,25417,433,0001,025,0002,342,912
132Dec 22, 2025 00:1731,84147,435,54518,468,00002,326,528
133Dec 21, 2025 23:0931,84745,181,87618,471,00002,535,424
134Dec 22, 2025 00:1531,86940,723,14117,458,0001,026,0002,510,848
135Dec 22, 2025 00:1431,88642,976,74618,494,00002,433,024
136Dec 22, 2025 00:1531,88841,692,09717,468,0001,027,0002,338,816
137Dec 21, 2025 23:0131,91039,696,45517,480,0001,028,0002,461,696
138Dec 21, 2025 23:0231,91243,869,69817,481,0001,028,0002,445,312
139Dec 22, 2025 00:1431,98333,987,17017,520,0001,030,0002,441,216
140Dec 22, 2025 00:1532,01743,836,05218,570,00002,506,752
141Dec 21, 2025 23:0532,04343,320,62717,553,0001,032,0002,510,848
142Dec 21, 2025 23:0932,07139,832,24418,601,00002,465,792
143Dec 21, 2025 23:0332,10038,382,82217,584,0001,034,0002,412,544
144Dec 21, 2025 23:0832,10341,836,14317,586,0001,034,0002,433,024
145Dec 21, 2025 23:0532,22842,327,40818,692,00002,498,560
146Dec 22, 2025 00:1732,23648,691,90517,659,0001,038,0002,498,560
147Dec 22, 2025 00:2132,30344,880,47718,736,00002,465,792
148Dec 21, 2025 23:0132,31240,275,90117,700,0001,041,0002,383,872
149Dec 21, 2025 23:0232,36246,049,09018,770,00002,375,680
150Dec 21, 2025 23:0432,37143,061,31518,775,00002,494,464
151Dec 21, 2025 23:0232,59337,607,37218,904,00002,490,368
152Dec 22, 2025 00:1732,59545,154,53517,910,000995,0002,473,984
153Dec 21, 2025 23:0532,60246,040,27817,914,000995,0002,494,464
154Dec 21, 2025 23:0832,60247,003,91516,919,0001,990,0002,449,408
155Dec 21, 2025 23:3832,66244,735,84716,950,0001,994,0002,453,504
156Dec 21, 2025 23:0933,60046,240,90718,463,0001,025,0002,445,312