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 15:10alxmrcktralxmrcktrRUSTrust-1.84.0Error
Jan 25, 2025 15:10alxmrcktralxmrcktrRUSTrust-1.84.0Success142,867
Jan 25, 2025 15:08alxmrcktralxmrcktrRUSTrust-1.84.0Success143,152
Jan 25, 2025 15:07alxmrcktralxmrcktrRUSTrust-1.84.0Error
Jan 25, 2025 15:06alxmrcktralxmrcktrRUSTrust-1.84.0Error
Jan 25, 2025 15:06alxmrcktralxmrcktrRUSTrust-1.84.0Success142,864
Jan 25, 2025 15:05alxmrcktralxmrcktrRUSTrust-1.84.0Error
Jan 25, 2025 15:03alxmrcktralxmrcktrRUSTrust-1.84.0Success142,962
Jan 25, 2025 14:51alxmrcktralxmrcktrRUSTrust-1.84.0Error
Jan 25, 2025 14:24alxmrcktralxmrcktrRUSTrust-1.84.0Error
Jan 25, 2025 13:43alxmrcktralxmrcktrRUSTrust-1.84.0Error
Jan 25, 2025 13:39alxmrcktralxmrcktrRUSTrust-1.84.0Error
Jan 25, 2025 13:37alxmrcktralxmrcktrRUSTrust-1.84.0Error
Jan 25, 2025 13:07alxmrcktralxmrcktrRUSTrust-1.84.0Error
Jan 25, 2025 13:06alxmrcktralxmrcktrRUSTrust-1.84.0Error
Jan 25, 2025 13:04alxmrcktralxmrcktrRUSTrust-1.84.0Error
Jan 25, 2025 13:03alxmrcktralxmrcktrRUSTrust-1.84.0Error
Jan 25, 2025 12:58alxmrcktralxmrcktrRUSTrust-1.84.0Error
Jan 25, 2025 12:56alxmrcktralxmrcktrRUSTrust-1.84.0Error
Jan 25, 2025 12:32alxmrcktralxmrcktrRUSTrust-1.84.0Error
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