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 26, 2025 12:18Code HintsCode HintsRUSTrust-1.84.0Success95,214
Jan 26, 2025 12:14alxmrcktralxmrcktrRUSTrust-1.84.0Success95,029+0.39 RP
Jan 26, 2025 12:12alxmrcktralxmrcktrRUSTrust-1.84.0Success95,793
Jan 26, 2025 12:10Code HintsCode HintsRUSTrust-1.84.0Success95,393
Jan 26, 2025 12:08Code HintsCode HintsRUSTrust-1.84.0Success94,131+0.97 RP
Jan 26, 2025 12:08Code HintsCode HintsRUSTrust-1.84.0Success95,179
Jan 26, 2025 12:07Code HintsCode HintsRUSTrust-1.84.0Success95,588
Jan 26, 2025 12:05Code HintsCode HintsRUSTrust-1.84.0Success97,374
Jan 26, 2025 12:04alxmrcktralxmrcktrRUSTrust-1.84.0Success96,836
Jan 26, 2025 12:03Code HintsCode HintsRUSTrust-1.84.0Success95,002+1.50 RP
Jan 26, 2025 11:56alxmrcktralxmrcktrRUSTrust-1.84.0Success96,624
Jan 26, 2025 11:55alxmrcktralxmrcktrRUSTrust-1.84.0Error
Jan 26, 2025 11:52alxmrcktralxmrcktrRUSTrust-1.84.0Success95,378+1.06 RP
Jan 26, 2025 11:49alxmrcktralxmrcktrRUSTrust-1.84.0Success97,129
Jan 26, 2025 11:36alxmrcktralxmrcktrRUSTrust-1.84.0Success98,262
Jan 26, 2025 11:32alxmrcktralxmrcktrRUSTrust-1.84.0Success98,383
Jan 26, 2025 11:25alxmrcktralxmrcktrRUSTrust-1.84.0Success98,498
Jan 26, 2025 11:22alxmrcktralxmrcktrRUSTrust-1.84.0Success100,914
Jan 26, 2025 00:20alxmrcktralxmrcktrRUSTrust-1.84.0Error
Jan 26, 2025 00:13alxmrcktralxmrcktrRUSTrust-1.84.0Error
Jan 25, 2025 23:58alxmrcktralxmrcktrRUSTrust-1.84.0Error
Jan 25, 2025 23:51alxmrcktralxmrcktrRUSTrust-1.84.0Error
Jan 25, 2025 23:43alxmrcktralxmrcktrRUSTrust-1.84.0Error
Jan 25, 2025 23:41alxmrcktralxmrcktrRUSTrust-1.84.0Error
Jan 25, 2025 23:36alxmrcktralxmrcktrRUSTrust-1.84.0Error
Jan 25, 2025 23:35alxmrcktralxmrcktrRUSTrust-1.84.0Error
Jan 25, 2025 23:34alxmrcktralxmrcktrRUSTrust-1.84.0Success145,134
Jan 25, 2025 23:32alxmrcktralxmrcktrRUSTrust-1.84.0Error
Jan 25, 2025 23:28alxmrcktralxmrcktrRUSTrust-1.84.0Error
Jan 25, 2025 23:27alxmrcktralxmrcktrRUSTrust-1.84.0Success141,109
Jan 25, 2025 17:36korey-skorey-sRUSTrust-1.84.0Error
Jan 25, 2025 17:35korey-skorey-sRUSTrust-1.84.0Error
Jan 25, 2025 17:15korey-skorey-sRUSTrust-1.84.0Success82,897
Jan 25, 2025 17:08alxmrcktralxmrcktrRUSTrust-1.84.0Success140,672
Jan 25, 2025 16:56alxmrcktralxmrcktrRUSTrust-1.84.0Success141,440
Jan 25, 2025 16:55alxmrcktralxmrcktrRUSTrust-1.84.0Success141,750
Jan 25, 2025 16:50korey-skorey-sRUSTrust-1.84.0Success81,576+0.55 RP
Jan 25, 2025 16:49alxmrcktralxmrcktrRUSTrust-1.84.0Error
Jan 25, 2025 16:49korey-skorey-sRUSTrust-1.84.0Error
Jan 25, 2025 16:48alxmrcktralxmrcktrRUSTrust-1.84.0Success140,748
Jan 25, 2025 16:42korey-skorey-sRUSTrust-1.84.0Success81,943+0.89 RP
Jan 25, 2025 16:36korey-skorey-sRUSTrust-1.83.0Success83,022
Jan 25, 2025 15:59alxmrcktralxmrcktrRUSTrust-1.84.0Error
Jan 25, 2025 15:58alxmrcktralxmrcktrRUSTrust-1.84.0Error
Jan 25, 2025 15:58alxmrcktralxmrcktrRUSTrust-1.84.0Error
Jan 25, 2025 15:57alxmrcktralxmrcktrRUSTrust-1.84.0Error
Jan 25, 2025 15:45alxmrcktralxmrcktrRUSTrust-1.84.0Success140,250
Jan 25, 2025 15:41alxmrcktralxmrcktrRUSTrust-1.84.0Error
Jan 25, 2025 15:33alxmrcktralxmrcktrRUSTrust-1.84.0Success139,181
Jan 25, 2025 15:32alxmrcktralxmrcktrRUSTrust-1.84.0Success139,788
Jan 25, 2025 15:26alxmrcktralxmrcktrRUSTrust-1.84.0Success139,572
Jan 25, 2025 15:23alxmrcktralxmrcktrRUSTrust-1.84.0Error
Jan 25, 2025 15:20alxmrcktralxmrcktrRUSTrust-1.84.0Success141,167
Jan 25, 2025 15:14alxmrcktralxmrcktrRUSTrust-1.84.0Error
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