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:08HattonuriHattonuriError
Source Code

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

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