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.

Date AuthorLanguageStatus Score
Apr 21, 2026 15:37limanjun99limanjun99CPPg++14.2.0Success1,520,232+6.58 RP
Apr 21, 2026 10:18Charles CabergsCharles CabergsCPPg++13.3.0Success55,181
Apr 21, 2026 09:38Dominique GarmierDominique GarmierCPPg++13.3.0Success83,134
Apr 21, 2026 09:32Dominique GarmierDominique GarmierCPPg++13.3.0Success11,606
Apr 21, 2026 08:29Charles CabergsCharles CabergsCPPg++13.3.0Error
Apr 21, 2026 07:09Dominique GarmierDominique GarmierCPPg++13.3.0Success144,250
Apr 21, 2026 02:07olliecrowolliecrowCPPg++10.5.0Success76,506
Apr 21, 2026 01:30olliecrowolliecrowCPPg++10.5.0Success77,820
Apr 21, 2026 01:28Taylor DettlingTaylor DettlingCPPg++10.5.0Success1,297,434+7.71 RP
Apr 21, 2026 00:55olliecrowolliecrowCPPg++13.3.0Success94,532
Apr 20, 2026 21:02Charles CabergsCharles CabergsCPPg++13.3.0Success85,512
Apr 20, 2026 18:23olliecrowolliecrowCPPg++13.3.0Success78,520
Apr 20, 2026 18:07Charles CabergsCharles CabergsCPPg++13.3.0Success53,558
Apr 20, 2026 16:53olliecrowolliecrowCPPg++10.5.0Success75,215
Apr 20, 2026 16:33BenBenCPPg++14.2.0Success111,943+2.59 RP
Apr 20, 2026 16:33BenBenCPPclang++20.1.2Success115,286+13.48 RP
Apr 20, 2026 16:30BenBenCPPg++14.2.0Success136,493+0.83 RP
Apr 20, 2026 16:30BenBenCPPclang++18.1.3Success139,563
Apr 20, 2026 16:30BenBenCPPclang++20.1.2Success138,058+0.78 RP
Apr 20, 2026 16:30BenBenCPPclang++20.1.2Success139,556+71.66 RP
Apr 20, 2026 15:00olliecrowolliecrowZIG0.14.0Success87,391
Apr 20, 2026 14:59olliecrowolliecrowRUSTrust-1.94.0Error
Apr 20, 2026 14:58olliecrowolliecrowGOgo1.26.1Success124,908
Apr 20, 2026 14:54olliecrowolliecrowCPPg++13.3.0Success6,268
Apr 19, 2026 08:01olliecrowolliecrowCPPclang++18.1.3Success98,064
Apr 19, 2026 07:53olliecrowolliecrowCPPclang++18.1.3Success7,369
Apr 19, 2026 07:52olliecrowolliecrowCPPclang++18.1.3Error
Apr 19, 2026 05:41Charles CabergsCharles CabergsCPPg++13.3.0Success54,998
Apr 19, 2026 04:07olliecrowolliecrowCPPclang++18.1.3Success99,024
Apr 19, 2026 04:05olliecrowolliecrowCPPclang++18.1.3Success93,281
Apr 19, 2026 04:03olliecrowolliecrowCPPclang++18.1.3Success100,566
Apr 19, 2026 03:36Charles CabergsCharles CabergsCPPg++13.3.0Success54,547
Apr 19, 2026 01:52olliecrowolliecrowCSHARP9.0.14Error
Apr 19, 2026 01:21Charles CabergsCharles CabergsCPPg++13.3.0Success56,379
Apr 18, 2026 22:31olliecrowolliecrowZIG0.14.0Success439,809
Apr 18, 2026 22:20olliecrowolliecrowRUSTrust-1.94.0Success88,886
Apr 18, 2026 22:09olliecrowolliecrowGOgo1.26.1Success123,110
Apr 18, 2026 21:50olliecrowolliecrowCSHARP9.0.14Success114,067
Apr 18, 2026 21:48olliecrowolliecrowCSHARP9.0.14Error
Apr 18, 2026 20:46Charles CabergsCharles CabergsCPPg++13.3.0Success53,526+76.45 RP
Apr 18, 2026 14:18Charles CabergsCharles CabergsCPPg++13.3.0Success90,598+26.26 RP
Apr 18, 2026 04:46Charles CabergsCharles CabergsCPPg++13.3.0Success118,886+12.65 RP
Apr 18, 2026 01:34olliecrowolliecrowGOgo1.26.1Error
Apr 18, 2026 01:32olliecrowolliecrowGOgo1.26.1Error
Apr 18, 2026 01:28olliecrowolliecrowGOgo1.26.1Success9,391
Apr 18, 2026 01:18olliecrowolliecrowCSHARP9.0.14Error
Apr 18, 2026 01:16olliecrowolliecrowCSHARP9.0.14Error
Apr 18, 2026 01:14olliecrowolliecrowCSHARP9.0.14Error
Apr 18, 2026 00:41olliecrowolliecrowCSHARP9.0.14Error
Apr 18, 2026 00:36olliecrowolliecrowCSHARP9.0.14Error
Apr 18, 2026 00:34olliecrowolliecrowCSHARP9.0.14Error
Apr 17, 2026 18:57Charles CabergsCharles CabergsCPPg++13.3.0Success139,922+71.47 RP
Apr 16, 2026 23:04olliecrowolliecrowCSHARP9.0.14Error
Apr 16, 2026 21:57olliecrowolliecrowZIG0.14.0Success489,266
Apr 16, 2026 21:56olliecrowolliecrowCPPclang++18.1.3Error
Apr 16, 2026 21:37olliecrowolliecrowGOgo1.26.1Error
Apr 16, 2026 18:03olliecrowolliecrowRUSTrust-1.94.0Error
Apr 16, 2026 17:23olliecrowolliecrowRUSTrust-1.94.0Success6,026
Apr 16, 2026 17:16olliecrowolliecrowRUSTrust-1.94.0Success6,290
Apr 16, 2026 17:14olliecrowolliecrowRUSTrust-1.94.0Success5,969
Apr 16, 2026 17:13olliecrowolliecrowRUSTrust-1.94.0Error
Apr 16, 2026 16:58olliecrowolliecrowRUSTrust-1.94.0Success6,276
Apr 16, 2026 16:56olliecrowolliecrowRUSTrust-1.94.0Success6,814
Apr 16, 2026 16:30olliecrowolliecrowRUSTrust-1.94.0Success6,052
Apr 16, 2026 16:26olliecrowolliecrowRUSTrust-1.94.0Error
Apr 16, 2026 16:24olliecrowolliecrowRUSTrust-1.94.0Error
Apr 16, 2026 16:17olliecrowolliecrowRUSTrust-1.94.0Error
Apr 16, 2026 16:14olliecrowolliecrowRUSTrust-1.94.0Error
Apr 16, 2026 16:12olliecrowolliecrowRUSTrust-1.94.0Error
Apr 16, 2026 16:10olliecrowolliecrowRUSTrust-1.94.0Success6,074
Apr 16, 2026 16:06olliecrowolliecrowRUSTrust-1.94.0Success5,974
Apr 16, 2026 08:34olliecrowolliecrowCPPg++13.3.0Error
Apr 16, 2026 05:30olliecrowolliecrowCPPg++13.3.0Error
Apr 16, 2026 03:40olliecrowolliecrowCPPclang++18.1.3Success6,859
Apr 16, 2026 03:36olliecrowolliecrowCPPclang++18.1.3Error
Apr 16, 2026 01:54olliecrowolliecrowCPPclang++18.1.3Error
Apr 15, 2026 13:16olliecrowolliecrowGOgo1.26.1Success9,109
Apr 15, 2026 13:13olliecrowolliecrowRUSTrust-1.94.0Error
Apr 15, 2026 13:08olliecrowolliecrowCPPg++13.3.0Error
Apr 14, 2026 17:44olliecrowolliecrowRUSTrust-1.94.0Error
Apr 14, 2026 14:39olliecrowolliecrowRUSTrust-1.94.1Success7,234
Apr 14, 2026 14:38olliecrowolliecrowCPPg++13.3.0Success6,453
Apr 12, 2026 17:14Tim ZhamoidinTim ZhamoidinCPPg++13.3.0Success61,179
Apr 12, 2026 17:14Tim ZhamoidinTim ZhamoidinCPPclang++18.1.3Success60,143
Apr 11, 2026 20:50Tim ZhamoidinTim ZhamoidinCPPg++13.3.0Success59,676+4.33 RP
Apr 11, 2026 20:46Tim ZhamoidinTim ZhamoidinCPPclang++18.1.3Success61,864
Apr 11, 2026 20:45Tim ZhamoidinTim ZhamoidinCPPclang++18.1.3Success61,260+1.39 RP
Apr 11, 2026 20:18Tim ZhamoidinTim ZhamoidinCPPclang++18.1.3Success62,836
Apr 11, 2026 20:17Tim ZhamoidinTim ZhamoidinCPPclang++18.1.3Success62,617
Apr 11, 2026 20:17Tim ZhamoidinTim ZhamoidinCPPclang++18.1.3Success64,709
Apr 11, 2026 20:17Tim ZhamoidinTim ZhamoidinCPPclang++18.1.3Error
Apr 11, 2026 20:16Tim ZhamoidinTim ZhamoidinCPPclang++18.1.3Error
Apr 11, 2026 20:16Tim ZhamoidinTim ZhamoidinCPPclang++18.1.3Success62,184
Apr 11, 2026 20:14Tim ZhamoidinTim ZhamoidinCPPclang++18.1.3Success65,509
Apr 11, 2026 20:13Tim ZhamoidinTim ZhamoidinCPPclang++18.1.3Error
Apr 11, 2026 20:13Tim ZhamoidinTim ZhamoidinCPPclang++18.1.3Error
Apr 11, 2026 20:12Tim ZhamoidinTim ZhamoidinCPPclang++18.1.3Success61,788+3.51 RP
Apr 11, 2026 20:12Tim ZhamoidinTim ZhamoidinCPPclang++18.1.3Success64,790
Apr 11, 2026 20:12Tim ZhamoidinTim ZhamoidinCPPclang++18.1.3Error
Apr 11, 2026 20:11Tim ZhamoidinTim ZhamoidinCPPclang++18.1.3Success63,279