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
Feb 7, 2025 21:09alxmrcktralxmrcktrRUSTrust-1.84.0Error
Feb 7, 2025 21:07Code HintsCode HintsRUSTrust-1.84.0Error
Feb 7, 2025 21:06Code HintsCode HintsRUSTrust-1.84.0Error
Feb 7, 2025 21:04Code HintsCode HintsRUSTrust-1.84.0Error
Feb 7, 2025 21:03Code HintsCode HintsRUSTrust-1.84.0Error
Feb 7, 2025 21:02Code HintsCode HintsRUSTrust-1.84.0Error
Feb 7, 2025 20:58Code HintsCode HintsRUSTrust-1.84.0Error
Feb 7, 2025 20:57Daniel HarrisDaniel HarrisRUSTrust-1.84.1Error
Feb 7, 2025 20:57Code HintsCode HintsRUSTrust-1.84.0Error
Feb 7, 2025 20:56Daniel HarrisDaniel HarrisRUSTrust-1.84.1Error
Feb 7, 2025 19:57Code HintsCode HintsRUSTrust-1.84.0Error
Feb 7, 2025 19:23Daniel HarrisDaniel HarrisRUSTrust-1.84.1Error
Feb 7, 2025 19:18Daniel HarrisDaniel HarrisRUSTrust-1.84.1Error
Feb 7, 2025 18:13Daniel HarrisDaniel HarrisRUSTrust-1.84.1Error
Feb 7, 2025 18:12Daniel HarrisDaniel HarrisRUSTrust-1.84.1Error
Feb 7, 2025 17:53Daniel HarrisDaniel HarrisRUSTrust-1.84.1Success135,202
Feb 7, 2025 17:53Daniel HarrisDaniel HarrisRUSTrust-1.84.1Success137,757
Feb 7, 2025 17:47Daniel HarrisDaniel HarrisRUSTrust-1.84.1Error
Feb 7, 2025 17:45Daniel HarrisDaniel HarrisRUSTrust-1.84.1Error
Feb 7, 2025 17:44Daniel HarrisDaniel HarrisRUSTrust-1.84.1Success138,014
Feb 7, 2025 17:42Daniel HarrisDaniel HarrisRUSTrust-1.84.1Success185,057
Feb 7, 2025 17:07Bhavik-MakwanaBhavik-MakwanaRUSTrust-1.83.0Error
Feb 7, 2025 16:44Bhavik-MakwanaBhavik-MakwanaRUSTrust-1.83.0Success625,272+8.77 RP
Feb 7, 2025 16:44Bhavik-MakwanaBhavik-MakwanaRUSTrust-1.83.0Error
Feb 7, 2025 16:43Bhavik-MakwanaBhavik-MakwanaRUSTrust-1.83.0Error
Feb 7, 2025 16:27Bhavik-MakwanaBhavik-MakwanaRUSTrust-1.83.0Error
Feb 7, 2025 16:26Bhavik-MakwanaBhavik-MakwanaRUSTrust-1.83.0Error
Feb 7, 2025 15:23Daniel HarrisDaniel HarrisRUSTrust-1.84.1Success116,019+2.33 RP
Feb 7, 2025 15:09Bhavik-MakwanaBhavik-MakwanaRUSTrust-1.83.0Error
Feb 7, 2025 15:06Bhavik-MakwanaBhavik-MakwanaRUSTrust-1.83.0Success1,438,400
Feb 7, 2025 15:05Daniel HarrisDaniel HarrisRUSTrust-1.84.1Error
Feb 7, 2025 15:03Daniel HarrisDaniel HarrisRUSTrust-1.84.1Error
Feb 7, 2025 15:03Bhavik-MakwanaBhavik-MakwanaRUSTrust-1.83.0Success4,038,000
Feb 7, 2025 14:47Bhavik-MakwanaBhavik-MakwanaRUSTrust-1.83.0Success1,487,938
Feb 7, 2025 14:46Bhavik-MakwanaBhavik-MakwanaRUSTrust-1.83.0Success1,473,562
Feb 7, 2025 14:43Bhavik-MakwanaBhavik-MakwanaRUSTrust-1.83.0Success1,478,038
Feb 7, 2025 14:27Bhavik-MakwanaBhavik-MakwanaRUSTrust-1.84.1Success1,474,948
Feb 7, 2025 14:26Bhavik-MakwanaBhavik-MakwanaRUSTrust-1.84.1Error
Feb 7, 2025 14:24Bhavik-MakwanaBhavik-MakwanaRUSTrust-1.84.1Success1,683,316
Feb 7, 2025 14:19Bhavik-MakwanaBhavik-MakwanaGOgo1.23.6Success1,385,321+2.94 RP
Feb 7, 2025 14:04Daniel HarrisDaniel HarrisRUSTrust-1.84.1Success119,240+3.51 RP
Feb 7, 2025 13:51Bhavik-MakwanaBhavik-MakwanaCPPclang++18.1.3Success2,336,386+4.28 RP
Feb 7, 2025 13:50Bhavik-MakwanaBhavik-MakwanaRUSTrust-1.84.1Error
Feb 7, 2025 12:45Daniel HarrisDaniel HarrisRUSTrust-1.84.1Success125,093
Feb 7, 2025 12:45Daniel HarrisDaniel HarrisRUSTrust-1.84.1Success146,383
Feb 7, 2025 12:45Daniel HarrisDaniel HarrisRUSTrust-1.84.1Success155,910
Feb 7, 2025 12:42Daniel HarrisDaniel HarrisRUSTrust-1.84.1Success277,717
Feb 7, 2025 12:37Daniel HarrisDaniel HarrisRUSTrust-1.84.1Success124,448+58.62 RP
Feb 7, 2025 12:22Daniel HarrisDaniel HarrisRUSTrust-1.84.1Error
Feb 7, 2025 11:44Daniel HarrisDaniel HarrisRUSTrust-1.84.1Success460,140+0.26 RP
Feb 7, 2025 11:41Daniel HarrisDaniel HarrisRUSTrust-1.84.1Success465,672+17.42 RP
Feb 7, 2025 11:39Daniel HarrisDaniel HarrisRUSTrust-1.84.1Error
Feb 7, 2025 11:35Daniel HarrisDaniel HarrisRUSTrust-1.84.1Error
Feb 7, 2025 11:10Daniel HarrisDaniel HarrisRUSTrust-1.84.1Error
Feb 7, 2025 01:07Daniel HarrisDaniel HarrisRUSTrust-1.84.1Success10,102,929
Feb 7, 2025 00:52Daniel HarrisDaniel HarrisRUSTrust-1.84.1Success8,627,860
Feb 7, 2025 00:45Daniel HarrisDaniel HarrisRUSTrust-1.84.1Error
Feb 7, 2025 00:40Daniel HarrisDaniel HarrisRUSTrust-1.84.1Error
Feb 7, 2025 00:39Daniel HarrisDaniel HarrisRUSTrust-1.84.1Error
Feb 7, 2025 00:26Daniel HarrisDaniel HarrisRUSTrust-1.84.1Error
Feb 7, 2025 00:21Daniel HarrisDaniel HarrisRUSTrust-1.84.1Error
Feb 6, 2025 23:38Code HintsCode HintsRUSTrust-1.84.0Success93,022
Feb 6, 2025 20:04Daniel HarrisDaniel HarrisCPPclang++18.1.3Success2,467,766+2.15 RP
Feb 6, 2025 19:45Code HintsCode HintsRUSTrust-1.84.0Error
Feb 6, 2025 19:43Code HintsCode HintsRUSTrust-1.84.0Error
Feb 6, 2025 19:42Code HintsCode HintsRUSTrust-1.84.0Error
Feb 6, 2025 19:40Code HintsCode HintsRUSTrust-1.84.0Error
Feb 6, 2025 19:39Code HintsCode HintsRUSTrust-1.84.0Error
Feb 6, 2025 19:38Code HintsCode HintsRUSTrust-1.84.0Error
Feb 6, 2025 02:09Code HintsCode HintsRUSTrust-1.84.0Error
Feb 6, 2025 02:07Code HintsCode HintsRUSTrust-1.84.0Error
Feb 6, 2025 02:06Code HintsCode HintsRUSTrust-1.84.0Error
Feb 6, 2025 02:05Code HintsCode HintsRUSTrust-1.84.0Error
Feb 6, 2025 02:03Code HintsCode HintsRUSTrust-1.84.0Error
Feb 6, 2025 01:59Code HintsCode HintsRUSTrust-1.84.0Error
Feb 6, 2025 01:51Code HintsCode HintsRUSTrust-1.84.0Error
Feb 6, 2025 01:47Code HintsCode HintsRUSTrust-1.84.0Error
Feb 6, 2025 01:45Code HintsCode HintsRUSTrust-1.84.0Error
Feb 6, 2025 01:44Code HintsCode HintsRUSTrust-1.84.0Error
Feb 6, 2025 01:39Code HintsCode HintsRUSTrust-1.84.0Error
Feb 6, 2025 01:36Code HintsCode HintsRUSTrust-1.84.0Error
Feb 6, 2025 01:34Code HintsCode HintsRUSTrust-1.84.0Error
Feb 6, 2025 01:33Code HintsCode HintsRUSTrust-1.84.0Error
Feb 6, 2025 01:32Code HintsCode HintsRUSTrust-1.84.0Error
Feb 6, 2025 01:31Code HintsCode HintsRUSTrust-1.84.0Error
Feb 6, 2025 01:29Code HintsCode HintsRUSTrust-1.84.0Error
Feb 6, 2025 01:22Code HintsCode HintsRUSTrust-1.84.0Error
Feb 6, 2025 01:19Code HintsCode HintsRUSTrust-1.84.0Error
Feb 6, 2025 01:14Code HintsCode HintsRUSTrust-1.84.0Error
Feb 6, 2025 01:01Code HintsCode HintsRUSTrust-1.84.0Error
Feb 6, 2025 00:39Code HintsCode HintsRUSTrust-1.84.0Success94,310
Feb 6, 2025 00:38Code HintsCode HintsRUSTrust-1.84.0Success94,581
Feb 6, 2025 00:38Code HintsCode HintsRUSTrust-1.84.0Success94,198
Feb 6, 2025 00:34Code HintsCode HintsRUSTrust-1.84.0Success93,498
Feb 6, 2025 00:33Code HintsCode HintsRUSTrust-1.84.0Error
Feb 6, 2025 00:22Code HintsCode HintsRUSTrust-1.84.0Error
Feb 6, 2025 00:19Code HintsCode HintsRUSTrust-1.84.0Error
Feb 6, 2025 00:15Code HintsCode HintsRUSTrust-1.84.0Error
Feb 6, 2025 00:14Code HintsCode HintsRUSTrust-1.84.0Error
Feb 6, 2025 00:11Daniel HarrisDaniel HarrisRUSTrust-1.84.1Error