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 8, 2025 17:23alxmrcktralxmrcktrRUSTrust-1.84.0Error
Feb 8, 2025 17:20Code HintsCode HintsRUSTrust-1.84.0Success93,157
Feb 8, 2025 17:16alxmrcktralxmrcktrRUSTrust-1.84.0Error
Feb 8, 2025 15:50Code HintsCode HintsRUSTrust-1.84.0Success116,664
Feb 8, 2025 15:49Code HintsCode HintsRUSTrust-1.84.0Success116,603
Feb 8, 2025 15:37Code HintsCode HintsRUSTrust-1.84.0Success117,055
Feb 8, 2025 15:36alxmrcktralxmrcktrRUSTrust-1.84.0Success117,507
Feb 8, 2025 15:33alxmrcktralxmrcktrRUSTrust-1.84.0Error
Feb 8, 2025 15:20alxmrcktralxmrcktrRUSTrust-1.84.0Error
Feb 8, 2025 15:15alxmrcktralxmrcktrRUSTrust-1.84.0Error
Feb 8, 2025 15:12alxmrcktralxmrcktrRUSTrust-1.84.0Error
Feb 8, 2025 15:08alxmrcktralxmrcktrRUSTrust-1.84.0Success114,869
Feb 8, 2025 15:04alxmrcktralxmrcktrRUSTrust-1.84.0Error
Feb 8, 2025 14:57alxmrcktralxmrcktrRUSTrust-1.84.0Success115,309
Feb 8, 2025 14:54alxmrcktralxmrcktrRUSTrust-1.84.0Error
Feb 8, 2025 14:43alxmrcktralxmrcktrRUSTrust-1.84.0Success115,440
Feb 8, 2025 14:31alxmrcktralxmrcktrRUSTrust-1.84.0Error
Feb 8, 2025 14:24alxmrcktralxmrcktrRUSTrust-1.84.0Error
Feb 8, 2025 14:12alxmrcktralxmrcktrRUSTrust-1.84.0Error
Feb 8, 2025 14:08alxmrcktralxmrcktrRUSTrust-1.84.0Error
Feb 8, 2025 14:00alxmrcktralxmrcktrRUSTrust-1.84.0Error
Feb 8, 2025 13:58alxmrcktralxmrcktrRUSTrust-1.84.0Success116,400
Feb 8, 2025 13:56alxmrcktralxmrcktrRUSTrust-1.84.0Success115,452
Feb 8, 2025 13:44alxmrcktralxmrcktrRUSTrust-1.84.0Success115,319
Feb 8, 2025 13:33alxmrcktralxmrcktrRUSTrust-1.84.0Success112,326
Feb 8, 2025 13:30alxmrcktralxmrcktrRUSTrust-1.84.0Error
Feb 8, 2025 13:26alxmrcktralxmrcktrRUSTrust-1.84.0Error
Feb 8, 2025 13:24alxmrcktralxmrcktrRUSTrust-1.84.0Error
Feb 8, 2025 13:24alxmrcktralxmrcktrRUSTrust-1.84.0Error
Feb 8, 2025 13:19alxmrcktralxmrcktrRUSTrust-1.84.0Success112,490
Feb 8, 2025 10:47alxmrcktralxmrcktrRUSTrust-1.84.0Success114,872
Feb 8, 2025 10:44alxmrcktralxmrcktrRUSTrust-1.84.0Error
Feb 8, 2025 10:43alxmrcktralxmrcktrRUSTrust-1.84.0Success115,659
Feb 8, 2025 10:39alxmrcktralxmrcktrRUSTrust-1.84.0Success114,693
Feb 8, 2025 10:33alxmrcktralxmrcktrRUSTrust-1.84.0Success117,486
Feb 8, 2025 10:29alxmrcktralxmrcktrRUSTrust-1.84.0Success117,509
Feb 8, 2025 10:28alxmrcktralxmrcktrRUSTrust-1.84.0Success144,978
Feb 8, 2025 10:26alxmrcktralxmrcktrRUSTrust-1.84.0Success188,826
Feb 8, 2025 10:26alxmrcktralxmrcktrRUSTrust-1.84.0Error
Feb 8, 2025 10:23alxmrcktralxmrcktrRUSTrust-1.84.0Success140,588
Feb 8, 2025 10:09alxmrcktralxmrcktrRUSTrust-1.84.0Success143,360
Feb 8, 2025 01:39Code HintsCode HintsRUSTrust-1.84.0Error
Feb 8, 2025 01:24Code HintsCode HintsRUSTrust-1.84.0Error
Feb 8, 2025 01:12alxmrcktralxmrcktrRUSTrust-1.84.0Error
Feb 8, 2025 01:11alxmrcktralxmrcktrRUSTrust-1.84.0Error
Feb 8, 2025 01:02alxmrcktralxmrcktrRUSTrust-1.84.0Error
Feb 8, 2025 01:00alxmrcktralxmrcktrRUSTrust-1.84.0Error
Feb 8, 2025 00:59Code HintsCode HintsRUSTrust-1.84.0Error
Feb 8, 2025 00:55alxmrcktralxmrcktrRUSTrust-1.84.0Error
Feb 8, 2025 00:51alxmrcktralxmrcktrRUSTrust-1.84.0Error
Feb 8, 2025 00:51Code HintsCode HintsRUSTrust-1.84.0Success140,748
Feb 8, 2025 00:50Code HintsCode HintsRUSTrust-1.84.0Error
Feb 8, 2025 00:49Code HintsCode HintsRUSTrust-1.84.0Error
Feb 8, 2025 00:48alxmrcktralxmrcktrRUSTrust-1.84.0Error
Feb 8, 2025 00:47Code HintsCode HintsRUSTrust-1.84.0Error
Feb 8, 2025 00:46Code HintsCode HintsRUSTrust-1.84.0Error
Feb 8, 2025 00:44alxmrcktralxmrcktrRUSTrust-1.84.0Error
Feb 8, 2025 00:42alxmrcktralxmrcktrRUSTrust-1.84.0Error
Feb 8, 2025 00:38alxmrcktralxmrcktrRUSTrust-1.84.0Error
Feb 8, 2025 00:35Code HintsCode HintsRUSTrust-1.84.0Success140,598
Feb 8, 2025 00:34Code HintsCode HintsRUSTrust-1.84.0Error
Feb 8, 2025 00:33Code HintsCode HintsRUSTrust-1.84.0Error
Feb 8, 2025 00:30Code HintsCode HintsRUSTrust-1.84.0Error
Feb 8, 2025 00:30alxmrcktralxmrcktrRUSTrust-1.84.0Error
Feb 8, 2025 00:27alxmrcktralxmrcktrRUSTrust-1.84.0Error
Feb 8, 2025 00:26Code HintsCode HintsRUSTrust-1.84.0Error
Feb 8, 2025 00:23Code HintsCode HintsRUSTrust-1.84.0Success141,564
Feb 8, 2025 00:21Code HintsCode HintsRUSTrust-1.84.0Error
Feb 8, 2025 00:19alxmrcktralxmrcktrRUSTrust-1.84.0Error
Feb 8, 2025 00:14Code HintsCode HintsRUSTrust-1.84.0Error
Feb 8, 2025 00:11Code HintsCode HintsRUSTrust-1.84.0Error
Feb 8, 2025 00:08Code HintsCode HintsRUSTrust-1.84.0Error
Feb 8, 2025 00:05Code HintsCode HintsRUSTrust-1.84.0Error
Feb 7, 2025 23:57Code HintsCode HintsRUSTrust-1.84.0Error
Feb 7, 2025 23:49Code HintsCode HintsRUSTrust-1.84.0Error
Feb 7, 2025 23:47Code HintsCode HintsRUSTrust-1.84.0Error
Feb 7, 2025 23:41Code HintsCode HintsRUSTrust-1.84.0Error
Feb 7, 2025 23:36Code HintsCode HintsRUSTrust-1.84.0Error
Feb 7, 2025 23:31Code HintsCode HintsRUSTrust-1.84.0Error
Feb 7, 2025 23:26Code HintsCode HintsRUSTrust-1.84.0Error
Feb 7, 2025 21:41alxmrcktralxmrcktrRUSTrust-1.84.0Error
Feb 7, 2025 21:32alxmrcktralxmrcktrRUSTrust-1.84.0Error
Feb 7, 2025 21:30Daniel HarrisDaniel HarrisRUSTrust-1.84.1Success130,776
Feb 7, 2025 21:29Daniel HarrisDaniel HarrisRUSTrust-1.84.1Success129,638
Feb 7, 2025 21:29Daniel HarrisDaniel HarrisRUSTrust-1.84.1Success135,250
Feb 7, 2025 21:29Daniel HarrisDaniel HarrisRUSTrust-1.84.1Success127,548
Feb 7, 2025 21:28Daniel HarrisDaniel HarrisRUSTrust-1.84.1Success143,243
Feb 7, 2025 21:26Daniel HarrisDaniel HarrisRUSTrust-1.84.1Success130,081
Feb 7, 2025 21:24alxmrcktralxmrcktrRUSTrust-1.84.0Success141,164
Feb 7, 2025 21:22Code HintsCode HintsRUSTrust-1.84.0Error
Feb 7, 2025 21:21alxmrcktralxmrcktrRUSTrust-1.84.0Success141,926
Feb 7, 2025 21:20alxmrcktralxmrcktrRUSTrust-1.84.0Success141,181
Feb 7, 2025 21:19Daniel HarrisDaniel HarrisRUSTrust-1.84.1Success583,445
Feb 7, 2025 21:19alxmrcktralxmrcktrRUSTrust-1.84.0Error
Feb 7, 2025 21:17alxmrcktralxmrcktrRUSTrust-1.84.0Error
Feb 7, 2025 21:16alxmrcktralxmrcktrRUSTrust-1.84.0Error
Feb 7, 2025 21:14alxmrcktralxmrcktrRUSTrust-1.84.0Error
Feb 7, 2025 21:12alxmrcktralxmrcktrRUSTrust-1.84.0Error
Feb 7, 2025 21:12Daniel HarrisDaniel HarrisRUSTrust-1.84.1Success129,066
Feb 7, 2025 21:10Daniel HarrisDaniel HarrisRUSTrust-1.84.1Success910,345