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 1, 2025 20:53Code HintsCode HintsRUSTrust-1.84.0Success94,171
Feb 1, 2025 20:51Code HintsCode HintsRUSTrust-1.84.0Success94,322
Feb 1, 2025 16:12alxmrcktralxmrcktrRUSTrust-1.84.0Success94,922
Feb 1, 2025 16:07alxmrcktralxmrcktrRUSTrust-1.84.0Error
Feb 1, 2025 16:04alxmrcktralxmrcktrRUSTrust-1.84.0Success93,460
Feb 1, 2025 15:59alxmrcktralxmrcktrRUSTrust-1.84.0Success92,686
Feb 1, 2025 15:52alxmrcktralxmrcktrRUSTrust-1.84.0Success93,650
Feb 1, 2025 15:51alxmrcktralxmrcktrRUSTrust-1.84.0Success94,228
Feb 1, 2025 15:29alxmrcktralxmrcktrRUSTrust-1.84.0Success92,457
Feb 1, 2025 15:27alxmrcktralxmrcktrRUSTrust-1.84.0Success94,850
Feb 1, 2025 15:25Code HintsCode HintsRUSTrust-1.84.0Success93,362
Feb 1, 2025 15:22alxmrcktralxmrcktrRUSTrust-1.84.0Success94,200
Feb 1, 2025 15:03alxmrcktralxmrcktrRUSTrust-1.84.0Success93,617
Feb 1, 2025 14:59alxmrcktralxmrcktrRUSTrust-1.84.0Success93,233
Feb 1, 2025 14:57alxmrcktralxmrcktrRUSTrust-1.84.0Success94,141
Feb 1, 2025 14:06Code HintsCode HintsRUSTrust-1.84.0Success93,040
Feb 1, 2025 14:02Code HintsCode HintsRUSTrust-1.84.0Error
Feb 1, 2025 13:48Code HintsCode HintsRUSTrust-1.84.0Error
Feb 1, 2025 13:41Code HintsCode HintsRUSTrust-1.84.0Success93,166
Feb 1, 2025 13:34Code HintsCode HintsRUSTrust-1.84.0Success92,288
Feb 1, 2025 13:32Code HintsCode HintsRUSTrust-1.84.0Success92,905
Feb 1, 2025 13:27Code HintsCode HintsRUSTrust-1.84.0Success92,922
Feb 1, 2025 13:20Code HintsCode HintsRUSTrust-1.84.0Success93,250
Feb 1, 2025 13:15Code HintsCode HintsRUSTrust-1.84.0Success93,443
Feb 1, 2025 13:14Code HintsCode HintsRUSTrust-1.84.0Success94,062
Feb 1, 2025 13:14Code HintsCode HintsRUSTrust-1.84.0Success94,359
Feb 1, 2025 13:07alxmrcktralxmrcktrRUSTrust-1.84.0Success96,890
Feb 1, 2025 13:02Code HintsCode HintsRUSTrust-1.84.0Success93,222
Feb 1, 2025 12:59alxmrcktralxmrcktrRUSTrust-1.84.0Success94,922
Feb 1, 2025 12:58alxmrcktralxmrcktrRUSTrust-1.84.0Success94,822
Feb 1, 2025 12:55alxmrcktralxmrcktrRUSTrust-1.84.0Success93,593
Feb 1, 2025 12:55Code HintsCode HintsRUSTrust-1.84.0Success93,812
Feb 1, 2025 12:51alxmrcktralxmrcktrRUSTrust-1.84.0Success92,569
Feb 1, 2025 12:47alxmrcktralxmrcktrRUSTrust-1.84.0Success92,952
Feb 1, 2025 12:47alxmrcktralxmrcktrRUSTrust-1.84.0Success93,764
Feb 1, 2025 12:46alxmrcktralxmrcktrRUSTrust-1.84.0Error
Feb 1, 2025 12:43alxmrcktralxmrcktrRUSTrust-1.84.0Success92,836
Feb 1, 2025 12:42alxmrcktralxmrcktrRUSTrust-1.84.0Error
Feb 1, 2025 12:41alxmrcktralxmrcktrRUSTrust-1.84.0Error
Feb 1, 2025 12:38alxmrcktralxmrcktrRUSTrust-1.84.0Error
Feb 1, 2025 12:34Code HintsCode HintsRUSTrust-1.84.0Error
Feb 1, 2025 12:33Code HintsCode HintsRUSTrust-1.84.0Success92,662
Feb 1, 2025 12:31Code HintsCode HintsRUSTrust-1.84.0Error
Feb 1, 2025 12:27alxmrcktralxmrcktrRUSTrust-1.84.0Success92,381
Feb 1, 2025 12:26alxmrcktralxmrcktrRUSTrust-1.84.0Success93,179
Feb 1, 2025 12:25alxmrcktralxmrcktrRUSTrust-1.84.0Success92,709
Feb 1, 2025 12:23alxmrcktralxmrcktrRUSTrust-1.84.0Success94,290
Feb 1, 2025 12:20Code HintsCode HintsRUSTrust-1.84.0Success92,914
Feb 1, 2025 12:00alxmrcktralxmrcktrRUSTrust-1.84.0Error
Feb 1, 2025 00:19alxmrcktralxmrcktrRUSTrust-1.84.0Error
Feb 1, 2025 00:17alxmrcktralxmrcktrRUSTrust-1.84.0Error
Feb 1, 2025 00:16alxmrcktralxmrcktrRUSTrust-1.84.0Error
Feb 1, 2025 00:13alxmrcktralxmrcktrRUSTrust-1.84.0Success93,916
Jan 31, 2025 23:52alxmrcktralxmrcktrRUSTrust-1.84.0Error
Jan 31, 2025 23:48alxmrcktralxmrcktrRUSTrust-1.84.0Success101,526
Jan 31, 2025 23:46alxmrcktralxmrcktrRUSTrust-1.84.0Error
Jan 31, 2025 23:43alxmrcktralxmrcktrRUSTrust-1.84.0Success93,688
Jan 31, 2025 23:42alxmrcktralxmrcktrRUSTrust-1.84.0Success93,007
Jan 31, 2025 23:41alxmrcktralxmrcktrRUSTrust-1.84.0Success92,507
Jan 31, 2025 23:40alxmrcktralxmrcktrRUSTrust-1.84.0Success93,879
Jan 31, 2025 23:38alxmrcktralxmrcktrRUSTrust-1.84.0Error
Jan 31, 2025 23:37alxmrcktralxmrcktrRUSTrust-1.84.0Error
Jan 31, 2025 23:36alxmrcktralxmrcktrRUSTrust-1.84.0Error
Jan 31, 2025 23:32alxmrcktralxmrcktrRUSTrust-1.84.0Success93,336
Jan 31, 2025 23:31alxmrcktralxmrcktrRUSTrust-1.84.0Success92,500
Jan 31, 2025 23:30alxmrcktralxmrcktrRUSTrust-1.84.0Success92,553
Jan 31, 2025 23:28alxmrcktralxmrcktrRUSTrust-1.84.0Error
Jan 31, 2025 23:17alxmrcktralxmrcktrRUSTrust-1.84.0Success94,276
Jan 31, 2025 23:13alxmrcktralxmrcktrRUSTrust-1.84.0Success92,919
Jan 31, 2025 22:19korey-skorey-sRUSTrust-1.84.0Success85,176
Jan 31, 2025 22:15korey-skorey-sRUSTrust-1.84.0Success90,021
Jan 31, 2025 02:24Code HintsCode HintsRUSTrust-1.84.0Success93,943
Jan 31, 2025 02:23Code HintsCode HintsRUSTrust-1.84.0Error
Jan 31, 2025 02:21Code HintsCode HintsRUSTrust-1.84.0Error
Jan 31, 2025 02:20Code HintsCode HintsRUSTrust-1.84.0Error
Jan 31, 2025 02:17Code HintsCode HintsRUSTrust-1.84.0Success92,919
Jan 31, 2025 02:16Code HintsCode HintsRUSTrust-1.84.0Success92,934
Jan 31, 2025 02:10Code HintsCode HintsRUSTrust-1.84.0Success94,407
Jan 31, 2025 01:54Code HintsCode HintsRUSTrust-1.84.0Success92,900
Jan 31, 2025 01:51Code HintsCode HintsRUSTrust-1.84.0Success94,741
Jan 31, 2025 01:45Code HintsCode HintsRUSTrust-1.84.0Success92,988
Jan 31, 2025 01:42Code HintsCode HintsRUSTrust-1.84.0Success93,221
Jan 31, 2025 01:40Code HintsCode HintsRUSTrust-1.84.0Success94,038
Jan 31, 2025 01:36Code HintsCode HintsRUSTrust-1.84.0Success92,148
Jan 31, 2025 01:27Code HintsCode HintsRUSTrust-1.84.0Success93,390
Jan 31, 2025 01:23Code HintsCode HintsRUSTrust-1.84.0Success93,098
Jan 31, 2025 01:22Code HintsCode HintsRUSTrust-1.84.0Success93,041
Jan 31, 2025 01:19Code HintsCode HintsRUSTrust-1.84.0Success94,088
Jan 31, 2025 01:15Code HintsCode HintsRUSTrust-1.84.0Success92,941
Jan 31, 2025 01:15Code HintsCode HintsRUSTrust-1.84.0Success93,122
Jan 31, 2025 01:13Code HintsCode HintsRUSTrust-1.84.0Success92,588
Jan 31, 2025 01:11Code HintsCode HintsRUSTrust-1.84.0Success93,093
Jan 31, 2025 01:04Code HintsCode HintsRUSTrust-1.84.0Success92,940
Jan 31, 2025 01:01Code HintsCode HintsRUSTrust-1.84.0Success93,297
Jan 31, 2025 01:00Code HintsCode HintsRUSTrust-1.84.0Success93,445
Jan 31, 2025 00:59Code HintsCode HintsRUSTrust-1.84.0Error
Jan 31, 2025 00:57Code HintsCode HintsRUSTrust-1.84.0Success92,314
Jan 31, 2025 00:56Code HintsCode HintsRUSTrust-1.84.0Error
Jan 31, 2025 00:55Code HintsCode HintsRUSTrust-1.84.0Success93,734
Jan 31, 2025 00:54Code HintsCode HintsRUSTrust-1.84.0Success93,953