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 14:01Code HintsCode HintsRUSTrust-1.84.0Success94,486
Jan 26, 2025 14:00Code HintsCode HintsRUSTrust-1.84.0Success93,893
Jan 26, 2025 13:59Code HintsCode HintsRUSTrust-1.84.0Success93,895
Jan 26, 2025 13:58Code HintsCode HintsRUSTrust-1.84.0Success92,900
Jan 26, 2025 13:57Code HintsCode HintsRUSTrust-1.84.0Success93,010
Jan 26, 2025 13:56Code HintsCode HintsRUSTrust-1.84.0Success94,290
Jan 26, 2025 13:56Code HintsCode HintsRUSTrust-1.84.0Success92,917
Jan 26, 2025 13:54Code HintsCode HintsRUSTrust-1.84.0Success92,624
Jan 26, 2025 13:53Code HintsCode HintsRUSTrust-1.84.0Success94,036
Jan 26, 2025 13:53Code HintsCode HintsRUSTrust-1.84.0Success93,574
Jan 26, 2025 13:52Code HintsCode HintsRUSTrust-1.84.0Success94,681
Jan 26, 2025 13:52Code HintsCode HintsRUSTrust-1.84.0Success93,638
Jan 26, 2025 13:50Code HintsCode HintsRUSTrust-1.84.0Success92,553+0.50 RP
Jan 26, 2025 13:49Code HintsCode HintsRUSTrust-1.84.0Success93,047
Jan 26, 2025 13:48Code HintsCode HintsRUSTrust-1.84.0Success94,598
Jan 26, 2025 13:47Code HintsCode HintsRUSTrust-1.84.0Success93,226
Jan 26, 2025 13:46Code HintsCode HintsRUSTrust-1.84.0Success94,091
Jan 26, 2025 13:45Code HintsCode HintsRUSTrust-1.84.0Success92,979+0.45 RP
Jan 26, 2025 13:44Code HintsCode HintsRUSTrust-1.84.0Success93,517
Jan 26, 2025 13:43Code HintsCode HintsRUSTrust-1.84.0Success94,034
Jan 26, 2025 13:43Code HintsCode HintsRUSTrust-1.84.0Success93,716
Jan 26, 2025 13:40Code HintsCode HintsRUSTrust-1.84.0Success93,369+0.53 RP
Jan 26, 2025 13:38Code HintsCode HintsRUSTrust-1.84.0Success94,928
Jan 26, 2025 13:37Code HintsCode HintsRUSTrust-1.84.0Success94,793
Jan 26, 2025 13:36Code HintsCode HintsRUSTrust-1.84.0Success93,829+0.34 RP
Jan 26, 2025 13:32Code HintsCode HintsRUSTrust-1.84.0Success94,598
Jan 26, 2025 13:10Code HintsCode HintsRUSTrust-1.84.0Success4,214,181
Jan 26, 2025 12:51Code HintsCode HintsRUSTrust-1.84.0Success94,931
Jan 26, 2025 12:46Code HintsCode HintsRUSTrust-1.84.0Success2,636,643
Jan 26, 2025 12:38Code HintsCode HintsRUSTrust-1.84.0Success94,822
Jan 26, 2025 12:37Code HintsCode HintsRUSTrust-1.84.0Success95,391
Jan 26, 2025 12:36Code HintsCode HintsRUSTrust-1.84.0Success94,960
Jan 26, 2025 12:35Code HintsCode HintsRUSTrust-1.84.0Success96,669
Jan 26, 2025 12:35Code HintsCode HintsRUSTrust-1.84.0Success94,141
Jan 26, 2025 12:34Code HintsCode HintsRUSTrust-1.84.0Error
Jan 26, 2025 12:33Code HintsCode HintsRUSTrust-1.84.0Error
Jan 26, 2025 12:31alxmrcktralxmrcktrRUSTrust-1.84.0Success94,659+0.02 RP
Jan 26, 2025 12:30alxmrcktralxmrcktrRUSTrust-1.84.0Error
Jan 26, 2025 12:30Code HintsCode HintsRUSTrust-1.84.0Success95,724
Jan 26, 2025 12:30alxmrcktralxmrcktrRUSTrust-1.84.0Error
Jan 26, 2025 12:29alxmrcktralxmrcktrRUSTrust-1.84.0Error
Jan 26, 2025 12:28alxmrcktralxmrcktrRUSTrust-1.84.0Success94,678+0.04 RP
Jan 26, 2025 12:24alxmrcktralxmrcktrRUSTrust-1.84.0Success94,712+0.35 RP
Jan 26, 2025 12:23Code HintsCode HintsRUSTrust-1.84.0Success95,416
Jan 26, 2025 12:23alxmrcktralxmrcktrRUSTrust-1.84.0Success95,779
Jan 26, 2025 12:19alxmrcktralxmrcktrRUSTrust-1.84.0Success96,007
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