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 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
Apr 11, 2026 20:06Tim ZhamoidinTim ZhamoidinCPPclang++18.1.3Error
Apr 11, 2026 20:05Tim ZhamoidinTim ZhamoidinCPPclang++18.1.3Error
Apr 11, 2026 19:51Tim ZhamoidinTim ZhamoidinCPPclang++18.1.3Success65,333
Apr 11, 2026 19:50Tim ZhamoidinTim ZhamoidinCPPclang++18.1.3Success63,157+25.58 RP
Apr 11, 2026 19:42Tim ZhamoidinTim ZhamoidinCPPg++13.3.0Success86,345
Apr 11, 2026 19:42Tim ZhamoidinTim ZhamoidinCPPclang++18.1.3Success79,857
Apr 11, 2026 19:41Tim ZhamoidinTim ZhamoidinCPPclang++18.1.3Success76,786
Apr 11, 2026 19:41Tim ZhamoidinTim ZhamoidinCPPclang++18.1.3Error
Apr 11, 2026 17:38Tim ZhamoidinTim ZhamoidinCPPclang++18.1.3Success84,978
Apr 11, 2026 17:23Tim ZhamoidinTim ZhamoidinCPPclang++18.1.3Success125,659
Apr 11, 2026 16:35Tim ZhamoidinTim ZhamoidinCPPclang++18.1.3Success76,814
Apr 10, 2026 18:02Tim ZhamoidinTim ZhamoidinCPPclang++18.1.3Success87,229
Apr 10, 2026 17:57Tim ZhamoidinTim ZhamoidinCPPclang++18.1.3Success86,236
Apr 10, 2026 17:50Tim ZhamoidinTim ZhamoidinCPPclang++18.1.3Success83,876
Apr 10, 2026 17:46Tim ZhamoidinTim ZhamoidinCPPclang++18.1.3Success75,328+13.52 RP
Apr 10, 2026 17:30Tim ZhamoidinTim ZhamoidinCPPclang++18.1.3Success98,381
Apr 10, 2026 17:29Tim ZhamoidinTim ZhamoidinCPPclang++18.1.3Success83,872+6.39 RP
Apr 10, 2026 17:27Tim ZhamoidinTim ZhamoidinCPPclang++18.1.3Success98,734
Apr 10, 2026 16:46Tim ZhamoidinTim ZhamoidinCPPclang++18.1.3Success103,688
Apr 10, 2026 16:46Tim ZhamoidinTim ZhamoidinCPPg++13.3.0Success104,195
Apr 10, 2026 16:46Tim ZhamoidinTim ZhamoidinCPPg++13.3.0Success106,317
Apr 10, 2026 16:44Tim ZhamoidinTim ZhamoidinCPPclang++18.1.3Success104,176
Apr 10, 2026 16:43Tim ZhamoidinTim ZhamoidinCPPclang++18.1.3Success101,367
Apr 10, 2026 16:43Tim ZhamoidinTim ZhamoidinCPPclang++18.1.3Success100,912