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
Jan 31, 2025 00:54Code HintsCode HintsRUSTrust-1.84.0Success92,928
Jan 31, 2025 00:48Code HintsCode HintsRUSTrust-1.84.0Success92,598
Jan 31, 2025 00:39Code HintsCode HintsRUSTrust-1.84.0Success92,443
Jan 31, 2025 00:30Code HintsCode HintsRUSTrust-1.84.0Error
Jan 31, 2025 00:23Code HintsCode HintsRUSTrust-1.84.0Error
Jan 31, 2025 00:14Code HintsCode HintsRUSTrust-1.84.0Error
Jan 30, 2025 23:58Code HintsCode HintsRUSTrust-1.84.0Error
Jan 30, 2025 23:48alxmrcktralxmrcktrRUSTrust-1.84.0Error
Jan 30, 2025 23:47Code HintsCode HintsRUSTrust-1.84.0Error
Jan 30, 2025 23:45alxmrcktralxmrcktrRUSTrust-1.84.0Error
Jan 30, 2025 23:41Code HintsCode HintsRUSTrust-1.84.0Error
Jan 30, 2025 23:41Code HintsCode HintsRUSTrust-1.84.0Error
Jan 30, 2025 23:39Code HintsCode HintsRUSTrust-1.84.0Error
Jan 30, 2025 23:35Code HintsCode HintsRUSTrust-1.84.0Success93,650
Jan 30, 2025 23:34alxmrcktralxmrcktrRUSTrust-1.84.0Error
Jan 30, 2025 23:33alxmrcktralxmrcktrRUSTrust-1.84.0Error
Jan 30, 2025 23:33Code HintsCode HintsRUSTrust-1.84.0Error
Jan 30, 2025 23:32Code HintsCode HintsRUSTrust-1.84.0Error
Jan 30, 2025 23:31Code HintsCode HintsRUSTrust-1.84.0Error
Jan 30, 2025 23:29Code HintsCode HintsRUSTrust-1.84.0Error
Jan 30, 2025 23:25alxmrcktralxmrcktrRUSTrust-1.84.0Success94,617
Jan 30, 2025 23:21alxmrcktralxmrcktrRUSTrust-1.84.0Success93,657
Jan 30, 2025 23:21Code HintsCode HintsRUSTrust-1.84.0Error
Jan 30, 2025 23:19alxmrcktralxmrcktrRUSTrust-1.84.0Success92,226+0.24 RP
Jan 30, 2025 23:17Code HintsCode HintsRUSTrust-1.84.0Error
Jan 30, 2025 23:12Code HintsCode HintsRUSTrust-1.84.0Error
Jan 30, 2025 23:10Code HintsCode HintsRUSTrust-1.84.0Error
Jan 30, 2025 23:08alxmrcktralxmrcktrRUSTrust-1.84.0Success93,224
Jan 30, 2025 23:07alxmrcktralxmrcktrRUSTrust-1.84.0Error
Jan 30, 2025 23:04alxmrcktralxmrcktrRUSTrust-1.84.0Error
Jan 30, 2025 23:03Code HintsCode HintsRUSTrust-1.84.0Error
Jan 30, 2025 23:02Code HintsCode HintsRUSTrust-1.84.0Error
Jan 30, 2025 23:01alxmrcktralxmrcktrRUSTrust-1.84.0Error
Jan 30, 2025 22:59Code HintsCode HintsRUSTrust-1.84.0Success93,791
Jan 30, 2025 22:58Code HintsCode HintsRUSTrust-1.84.0Success94,619
Jan 30, 2025 22:30Code HintsCode HintsRUSTrust-1.84.0Error
Jan 30, 2025 22:27Code HintsCode HintsRUSTrust-1.84.0Error
Jan 30, 2025 22:22Code HintsCode HintsRUSTrust-1.84.0Error
Jan 30, 2025 18:51KeefeKeefeCPPclang++18.1.3Success269,888
Jan 30, 2025 18:42KeefeKeefeCPPclang++18.1.3Error
Jan 30, 2025 18:27KeefeKeefeCPPclang++18.1.3Success252,705+0.92 RP
Jan 30, 2025 18:24KeefeKeefeCPPclang++18.1.3Error
Jan 30, 2025 14:22KeefeKeefeCPPclang++18.1.3Success258,753+10.89 RP
Jan 30, 2025 10:03KeefeKeefeCPPclang++18.1.3Success360,316+27.75 RP
Jan 29, 2025 00:10alxmrcktralxmrcktrRUSTrust-1.84.0Success93,936
Jan 29, 2025 00:09Code HintsCode HintsRUSTrust-1.84.0Success93,595
Jan 29, 2025 00:05Code HintsCode HintsRUSTrust-1.84.0Error
Jan 29, 2025 00:00Code HintsCode HintsRUSTrust-1.84.0Success93,328
Jan 28, 2025 23:49alxmrcktralxmrcktrRUSTrust-1.84.0Success93,074
Jan 28, 2025 23:45alxmrcktralxmrcktrRUSTrust-1.84.0Error
Jan 28, 2025 23:43alxmrcktralxmrcktrRUSTrust-1.84.0Success92,497
Jan 28, 2025 23:38alxmrcktralxmrcktrRUSTrust-1.84.0Error
Jan 28, 2025 23:36alxmrcktralxmrcktrRUSTrust-1.84.0Error
Jan 28, 2025 23:35alxmrcktralxmrcktrRUSTrust-1.84.0Error
Jan 28, 2025 23:32alxmrcktralxmrcktrRUSTrust-1.84.0Success92,431+0.07 RP
Jan 28, 2025 23:30alxmrcktralxmrcktrRUSTrust-1.84.0Success92,922
Jan 28, 2025 23:13Code HintsCode HintsRUSTrust-1.84.0Error
Jan 28, 2025 23:05alxmrcktralxmrcktrRUSTrust-1.84.0Success92,495+0.25 RP
Jan 28, 2025 23:00alxmrcktralxmrcktrRUSTrust-1.84.0Success93,667
Jan 28, 2025 22:58Code HintsCode HintsRUSTrust-1.84.0Error
Jan 28, 2025 22:57alxmrcktralxmrcktrRUSTrust-1.84.0Success96,350
Jan 28, 2025 22:13Code HintsCode HintsRUSTrust-1.84.0Success142,131
Jan 28, 2025 18:11etherealetherealGOgo1.23.5Success1,709,653+5.85 RP
Jan 28, 2025 00:41Code HintsCode HintsRUSTrust-1.84.0Success93,550
Jan 28, 2025 00:33Code HintsCode HintsRUSTrust-1.84.0Success94,253
Jan 28, 2025 00:28Code HintsCode HintsRUSTrust-1.84.0Success95,452
Jan 28, 2025 00:19Code HintsCode HintsRUSTrust-1.84.0Success93,453
Jan 28, 2025 00:16Code HintsCode HintsRUSTrust-1.84.0Success93,010
Jan 28, 2025 00:15Code HintsCode HintsRUSTrust-1.84.0Success93,267
Jan 28, 2025 00:15alxmrcktralxmrcktrRUSTrust-1.84.0Success92,960
Jan 28, 2025 00:14Code HintsCode HintsRUSTrust-1.84.0Success93,329
Jan 28, 2025 00:11Code HintsCode HintsRUSTrust-1.84.0Success93,097
Jan 28, 2025 00:06Code HintsCode HintsGOgo1.23.5Error
Jan 28, 2025 00:05Code HintsCode HintsGOgo1.23.5Success1,113,857
Jan 28, 2025 00:05alxmrcktralxmrcktrRUSTrust-1.84.0Success94,634
Jan 28, 2025 00:04Code HintsCode HintsGOgo1.23.5Error
Jan 28, 2025 00:04alxmrcktralxmrcktrRUSTrust-1.84.0Success94,431
Jan 28, 2025 00:04Code HintsCode HintsGOgo1.23.5Error
Jan 28, 2025 00:03Code HintsCode HintsGOgo1.23.5Error
Jan 28, 2025 00:02Code HintsCode HintsGOgo1.23.5Success1,387,260
Jan 28, 2025 00:00Code HintsCode HintsCSHARP9.0.1Error
Jan 27, 2025 23:59Code HintsCode HintsCSHARP9.0.1Success267,069
Jan 27, 2025 23:58Code HintsCode HintsCSHARP9.0.1Success247,355
Jan 27, 2025 23:56Code HintsCode HintsCSHARP9.0.1Error
Jan 27, 2025 23:55Code HintsCode HintsCPPclang++18.1.3Success171,543
Jan 27, 2025 23:53alxmrcktralxmrcktrRUSTrust-1.84.0Error
Jan 27, 2025 23:52Code HintsCode HintsCPPclang++18.1.3Error
Jan 27, 2025 23:51Code HintsCode HintsCPPclang++18.1.3Success172,869
Jan 27, 2025 23:51alxmrcktralxmrcktrRUSTrust-1.84.0Error
Jan 27, 2025 23:50Code HintsCode HintsCPPclang++18.1.3Success172,259
Jan 27, 2025 23:49Code HintsCode HintsCPPg++13.2.0Success178,593
Jan 27, 2025 23:48Code HintsCode HintsCPPclang++18.1.3Success184,597
Jan 27, 2025 23:48alxmrcktralxmrcktrRUSTrust-1.84.0Success93,224
Jan 27, 2025 23:46Code HintsCode HintsCPPclang++18.1.3Success187,034
Jan 27, 2025 23:44Code HintsCode HintsCPPclang++18.1.3Success210,719
Jan 27, 2025 23:43alxmrcktralxmrcktrRUSTrust-1.84.0Success93,345
Jan 27, 2025 23:42alxmrcktralxmrcktrRUSTrust-1.84.0Error
Jan 27, 2025 23:41Code HintsCode HintsCPPclang++18.1.3Error
Jan 27, 2025 23:39Code HintsCode HintsCPPclang++18.1.3Success2,398,593
Jan 27, 2025 23:39alxmrcktralxmrcktrRUSTrust-1.84.0Error