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 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
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