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 25, 2025 12:30alxmrcktralxmrcktrRUSTrust-1.84.0Error
Jan 25, 2025 10:14Code HintsCode HintsRUSTrust-1.84.0Error
Jan 25, 2025 00:12Code HintsCode HintsRUSTrust-1.84.0Error
Jan 24, 2025 23:55alxmrcktralxmrcktrRUSTrust-1.84.0Error
Jan 24, 2025 23:14alxmrcktralxmrcktrRUSTrust-1.84.0Error
Jan 24, 2025 23:12alxmrcktralxmrcktrRUSTrust-1.84.0Error
Jan 24, 2025 16:53Code HintsCode HintsRUSTrust-1.84.0Success100,636
Jan 24, 2025 16:44Code HintsCode HintsRUSTrust-1.84.0Success101,119
Jan 24, 2025 16:43Code HintsCode HintsRUSTrust-1.84.0Success98,809
Jan 24, 2025 16:23Code HintsCode HintsRUSTrust-1.84.0Success98,964
Jan 24, 2025 16:14Code HintsCode HintsRUSTrust-1.84.0Error
Jan 24, 2025 16:14Code HintsCode HintsRUSTrust-1.84.0Error
Jan 24, 2025 16:14Code HintsCode HintsRUSTrust-1.84.0Error
Jan 24, 2025 16:13Code HintsCode HintsRUSTrust-1.84.0Error
Jan 24, 2025 16:13Code HintsCode HintsRUSTrust-1.84.0Error
Jan 24, 2025 16:12Code HintsCode HintsRUSTrust-1.84.0Error
Jan 24, 2025 16:12Code HintsCode HintsRUSTrust-1.84.0Error
Jan 24, 2025 16:11Code HintsCode HintsRUSTrust-1.84.0Error
Jan 24, 2025 00:12Code HintsCode HintsRUSTrust-1.84.0Success97,581
Jan 24, 2025 00:05alxmrcktralxmrcktrRUSTrust-1.84.0Success97,488
Jan 24, 2025 00:02Code HintsCode HintsRUSTrust-1.84.0Success144,062
Jan 24, 2025 00:01Code HintsCode HintsRUSTrust-1.84.0Success97,479
Jan 24, 2025 00:00alxmrcktralxmrcktrRUSTrust-1.84.0Success96,774
Jan 23, 2025 23:58Code HintsCode HintsRUSTrust-1.84.0Success97,179
Jan 23, 2025 23:57Code HintsCode HintsRUSTrust-1.84.0Success98,052
Jan 23, 2025 23:57alxmrcktralxmrcktrRUSTrust-1.84.0Success96,602
Jan 23, 2025 23:57Code HintsCode HintsRUSTrust-1.84.0Success97,267
Jan 23, 2025 23:52Code HintsCode HintsRUSTrust-1.84.0Error
Jan 23, 2025 23:42Code HintsCode HintsRUSTrust-1.84.0Error
Jan 23, 2025 23:42alxmrcktralxmrcktrRUSTrust-1.84.0Success96,795
Jan 23, 2025 23:35alxmrcktralxmrcktrRUSTrust-1.84.0Success96,362
Jan 23, 2025 23:35Code HintsCode HintsRUSTrust-1.84.0Error
Jan 23, 2025 23:28Code HintsCode HintsRUSTrust-1.84.0Success96,845
Jan 23, 2025 23:27Code HintsCode HintsRUSTrust-1.84.0Success96,850
Jan 23, 2025 23:26Code HintsCode HintsRUSTrust-1.84.0Success98,353
Jan 23, 2025 23:25Code HintsCode HintsRUSTrust-1.84.0Error
Jan 23, 2025 23:24alxmrcktralxmrcktrRUSTrust-1.84.0Success96,953
Jan 23, 2025 23:23Code HintsCode HintsRUSTrust-1.84.0Error
Jan 23, 2025 23:22Code HintsCode HintsRUSTrust-1.84.0Error
Jan 23, 2025 23:22Code HintsCode HintsRUSTrust-1.84.0Error
Jan 23, 2025 23:21alxmrcktralxmrcktrRUSTrust-1.84.0Success96,790
Jan 23, 2025 23:21Code HintsCode HintsRUSTrust-1.84.0Error
Jan 23, 2025 23:18alxmrcktralxmrcktrRUSTrust-1.84.0Success97,152
Jan 23, 2025 23:17Code HintsCode HintsRUSTrust-1.84.0Success97,140
Jan 23, 2025 23:17alxmrcktralxmrcktrRUSTrust-1.84.0Error
Jan 23, 2025 23:12alxmrcktralxmrcktrRUSTrust-1.84.0Success97,434
Jan 23, 2025 23:11Code HintsCode HintsRUSTrust-1.84.0Error
Jan 23, 2025 23:10alxmrcktralxmrcktrRUSTrust-1.84.0Success98,112
Jan 23, 2025 23:09alxmrcktralxmrcktrRUSTrust-1.84.0Success96,860
Jan 23, 2025 23:08Code HintsCode HintsRUSTrust-1.84.0Error
Jan 23, 2025 23:08alxmrcktralxmrcktrRUSTrust-1.84.0Success96,350+0.85 RP
Jan 23, 2025 23:06Code HintsCode HintsRUSTrust-1.84.0Error
Jan 23, 2025 23:05alxmrcktralxmrcktrRUSTrust-1.84.0Error
Jan 23, 2025 23:04Code HintsCode HintsRUSTrust-1.84.0Error
Jan 23, 2025 23:00alxmrcktralxmrcktrRUSTrust-1.84.0Error
Jan 23, 2025 22:56alxmrcktralxmrcktrRUSTrust-1.84.0Success98,343
Jan 23, 2025 22:49alxmrcktralxmrcktrRUSTrust-1.84.0Success97,278
Jan 23, 2025 22:49Code HintsCode HintsRUSTrust-1.84.0Error
Jan 23, 2025 22:48Code HintsCode HintsRUSTrust-1.84.0Error
Jan 23, 2025 22:46Code HintsCode HintsRUSTrust-1.84.0Error
Jan 23, 2025 22:42Code HintsCode HintsRUSTrust-1.84.0Success98,091
Jan 23, 2025 22:28Code HintsCode HintsRUSTrust-1.84.0Success98,348
Jan 23, 2025 22:22Code HintsCode HintsRUSTrust-1.84.0Success99,921
Jan 23, 2025 22:19Code HintsCode HintsRUSTrust-1.84.0Error
Jan 23, 2025 22:18Code HintsCode HintsRUSTrust-1.84.0Error
Jan 23, 2025 22:18alxmrcktralxmrcktrRUSTrust-1.84.0Success97,148+17.19 RP
Jan 23, 2025 22:18Code HintsCode HintsRUSTrust-1.84.0Error
Jan 23, 2025 22:16Code HintsCode HintsRUSTrust-1.84.0Error
Jan 23, 2025 22:15Code HintsCode HintsRUSTrust-1.84.0Error
Jan 23, 2025 22:09Code HintsCode HintsRUSTrust-1.84.0Success98,057
Jan 23, 2025 22:06Code HintsCode HintsRUSTrust-1.84.0Success98,352
Jan 23, 2025 21:59Code HintsCode HintsRUSTrust-1.84.0Success97,590
Jan 23, 2025 15:17Code HintsCode HintsRUSTrust-1.84.0Success97,757
Jan 23, 2025 15:13Code HintsCode HintsRUSTrust-1.84.0Success97,817
Jan 23, 2025 15:11Code HintsCode HintsRUSTrust-1.84.0Success96,860
Jan 23, 2025 15:00Code HintsCode HintsRUSTrust-1.84.0Success96,664
Jan 23, 2025 14:55Code HintsCode HintsRUSTrust-1.84.0Success97,414
Jan 23, 2025 14:52Code HintsCode HintsRUSTrust-1.84.0Success97,738
Jan 23, 2025 14:49Code HintsCode HintsRUSTrust-1.84.0Error
Jan 23, 2025 14:48Code HintsCode HintsRUSTrust-1.84.0Error
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