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 23, 2025 14:45Code HintsCode HintsRUSTrust-1.84.0Success97,126
Jan 23, 2025 14:38Code HintsCode HintsRUSTrust-1.84.0Success96,824
Jan 23, 2025 14:31Code HintsCode HintsRUSTrust-1.84.0Success97,336
Jan 23, 2025 14:24Code HintsCode HintsRUSTrust-1.84.0Success97,271
Jan 23, 2025 14:18Code HintsCode HintsRUSTrust-1.84.0Success96,376+0.59 RP
Jan 23, 2025 11:24Code HintsCode HintsRUSTrust-1.84.0Success96,929+0.14 RP
Jan 23, 2025 11:22Code HintsCode HintsRUSTrust-1.84.0Success98,241
Jan 23, 2025 11:20Code HintsCode HintsRUSTrust-1.84.0Success98,991
Jan 23, 2025 11:18Code HintsCode HintsRUSTrust-1.84.0Success97,059+0.54 RP
Jan 23, 2025 11:15Code HintsCode HintsRUSTrust-1.84.0Success98,298
Jan 23, 2025 11:12Code HintsCode HintsRUSTrust-1.84.0Success98,384
Jan 23, 2025 11:09Code HintsCode HintsRUSTrust-1.84.0Success97,574+9.48 RP
Jan 23, 2025 11:07Code HintsCode HintsRUSTrust-1.84.0Error
Jan 23, 2025 11:04Code HintsCode HintsRUSTrust-1.84.0Error
Jan 23, 2025 11:03Code HintsCode HintsRUSTrust-1.84.0Error
Jan 23, 2025 10:58Code HintsCode HintsRUSTrust-1.84.0Error
Jan 23, 2025 10:54Code HintsCode HintsRUSTrust-1.84.0Error
Jan 23, 2025 10:49Code HintsCode HintsRUSTrust-1.84.0Error
Jan 23, 2025 10:40Code HintsCode HintsRUSTrust-1.84.0Error
Jan 23, 2025 10:23Code HintsCode HintsRUSTrust-1.84.0Success107,514+5.04 RP
Jan 23, 2025 10:00Code HintsCode HintsRUSTrust-1.84.0Success114,952
Jan 23, 2025 09:55Code HintsCode HintsRUSTrust-1.84.0Success113,669+0.09 RP
Jan 23, 2025 09:55Code HintsCode HintsRUSTrust-1.84.0Error
Jan 23, 2025 09:47Code HintsCode HintsRUSTrust-1.84.0Success113,783+0.08 RP
Jan 23, 2025 09:46Code HintsCode HintsRUSTrust-1.84.0Success117,729
Jan 23, 2025 09:43Code HintsCode HintsRUSTrust-1.84.0Success113,884+1.09 RP
Jan 23, 2025 09:40Code HintsCode HintsRUSTrust-1.84.0Error
Jan 23, 2025 09:28Code HintsCode HintsRUSTrust-1.84.0Success115,312+0.01 RP
Jan 23, 2025 09:27Code HintsCode HintsRUSTrust-1.84.0Error
Jan 23, 2025 08:37Haha ExpertHaha ExpertCSHARP9.0.1Success3,048,567
Jan 23, 2025 01:54alxmrcktralxmrcktrRUSTrust-1.84.0Error
Jan 23, 2025 01:45alxmrcktralxmrcktrRUSTrust-1.84.0Error
Jan 23, 2025 01:22Code HintsCode HintsRUSTrust-1.84.0Success125,905
Jan 23, 2025 01:20Code HintsCode HintsRUSTrust-1.84.0Success119,662
Jan 23, 2025 01:18alxmrcktralxmrcktrRUSTrust-1.84.0Success117,998
Jan 23, 2025 01:13Code HintsCode HintsRUSTrust-1.84.0Success118,779
Jan 23, 2025 01:12alxmrcktralxmrcktrRUSTrust-1.84.0Success116,621+10.95 RP
Jan 23, 2025 01:08Code HintsCode HintsRUSTrust-1.84.0Success120,476
Jan 23, 2025 01:06Code HintsCode HintsRUSTrust-1.84.0Success117,403
Jan 23, 2025 01:02Code HintsCode HintsRUSTrust-1.84.0Success117,316
Jan 23, 2025 00:59Code HintsCode HintsRUSTrust-1.84.0Error
Jan 23, 2025 00:57Code HintsCode HintsRUSTrust-1.84.0Error
Jan 23, 2025 00:57Code HintsCode HintsRUSTrust-1.84.0Error
Jan 23, 2025 00:48Code HintsCode HintsRUSTrust-1.84.0Error
Jan 23, 2025 00:47Code HintsCode HintsRUSTrust-1.84.0Error
Jan 23, 2025 00:41Code HintsCode HintsRUSTrust-1.84.0Error
Jan 23, 2025 00:39Code HintsCode HintsRUSTrust-1.84.0Error
Jan 23, 2025 00:27Code HintsCode HintsRUSTrust-1.84.0Error
Jan 23, 2025 00:25Code HintsCode HintsRUSTrust-1.84.0Error
Jan 23, 2025 00:23Code HintsCode HintsRUSTrust-1.84.0Error
Jan 23, 2025 00:16Code HintsCode HintsRUSTrust-1.84.0Error
Jan 23, 2025 00:12Code HintsCode HintsRUSTrust-1.84.0Error
Jan 23, 2025 00:10Code HintsCode HintsRUSTrust-1.84.0Error
Jan 22, 2025 23:52Code HintsCode HintsRUSTrust-1.84.0Error
Jan 22, 2025 23:50Code HintsCode HintsRUSTrust-1.84.0Error
Jan 22, 2025 23:49Code HintsCode HintsRUSTrust-1.84.0Error
Jan 22, 2025 23:48Code HintsCode HintsRUSTrust-1.84.0Error
Jan 22, 2025 23:48Code HintsCode HintsRUSTrust-1.84.0Error
Jan 22, 2025 23:44Code HintsCode HintsRUSTrust-1.84.0Error
Jan 22, 2025 23:39Code HintsCode HintsRUSTrust-1.84.0Error
Jan 22, 2025 23:26Ian MckibbenIan MckibbenCPPclang++18.1.3Error
Jan 22, 2025 23:18Code HintsCode HintsRUSTrust-1.84.0Success116,133
Jan 22, 2025 23:16Code HintsCode HintsRUSTrust-1.84.0Success115,319+0.20 RP
Jan 22, 2025 23:15Code HintsCode HintsRUSTrust-1.84.0Error
Jan 22, 2025 23:14Code HintsCode HintsRUSTrust-1.84.0Error
Jan 22, 2025 23:13Ian MckibbenIan MckibbenCPPclang++18.1.3Error
Jan 22, 2025 23:07Ian MckibbenIan MckibbenCPPclang++18.1.3Error
Jan 22, 2025 23:07Code HintsCode HintsRUSTrust-1.84.0Success115,590+1.95 RP
Jan 22, 2025 23:06Ian MckibbenIan MckibbenCPPclang++18.1.3Error
Jan 22, 2025 23:04Code HintsCode HintsRUSTrust-1.84.0Success118,769
Jan 22, 2025 23:02Ian MckibbenIan MckibbenCPPclang++18.1.3Error
Jan 22, 2025 22:59Code HintsCode HintsRUSTrust-1.84.0Success119,295
Jan 22, 2025 22:57Code HintsCode HintsRUSTrust-1.84.0Success118,969
Jan 22, 2025 22:55Code HintsCode HintsRUSTrust-1.84.0Success118,805
Jan 22, 2025 22:47Code HintsCode HintsRUSTrust-1.84.0Success118,593
Jan 22, 2025 22:46Code HintsCode HintsRUSTrust-1.84.0Success118,959
Jan 22, 2025 22:41Code HintsCode HintsRUSTrust-1.84.0Success118,262+0.13 RP
Jan 22, 2025 22:40Code HintsCode HintsRUSTrust-1.84.0Error
Jan 22, 2025 22:35Code HintsCode HintsRUSTrust-1.84.0Success126,405
Jan 22, 2025 22:26Code HintsCode HintsRUSTrust-1.84.0Success118,445+0.80 RP
Jan 22, 2025 22:25Code HintsCode HintsRUSTrust-1.84.0Success119,576+7.49 RP
Jan 22, 2025 22:09Code HintsCode HintsRUSTrust-1.84.0Error
Jan 22, 2025 22:08Code HintsCode HintsRUSTrust-1.84.0Error
Jan 22, 2025 22:08Code HintsCode HintsRUSTrust-1.84.0Error
Jan 22, 2025 22:07Code HintsCode HintsRUSTrust-1.84.0Error
Jan 22, 2025 22:06Code HintsCode HintsRUSTrust-1.84.0Error
Jan 22, 2025 22:05Code HintsCode HintsRUSTrust-1.84.0Error
Jan 22, 2025 22:03Ian MckibbenIan MckibbenCPPclang++18.1.3Error
Jan 22, 2025 22:00Ian MckibbenIan MckibbenCPPclang++18.1.3Error
Jan 22, 2025 21:49Code HintsCode HintsRUSTrust-1.84.0Error
Jan 22, 2025 21:49Code HintsCode HintsRUSTrust-1.84.0Error
Jan 22, 2025 21:47Code HintsCode HintsRUSTrust-1.84.0Error
Jan 22, 2025 21:46Code HintsCode HintsRUSTrust-1.84.0Error
Jan 22, 2025 21:41Code HintsCode HintsRUSTrust-1.84.0Error
Jan 22, 2025 21:40Code HintsCode HintsRUSTrust-1.84.0Error
Jan 22, 2025 21:40Code HintsCode HintsRUSTrust-1.84.0Error
Jan 22, 2025 21:39Code HintsCode HintsRUSTrust-1.84.0Error
Jan 22, 2025 21:38Code HintsCode HintsRUSTrust-1.84.0Error
Jan 22, 2025 21:38Code HintsCode HintsRUSTrust-1.84.0Error
Jan 22, 2025 21:36Code HintsCode HintsRUSTrust-1.84.0Error