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
Feb 6, 2025 00:02Code HintsCode HintsRUSTrust-1.84.0Success93,728
Feb 6, 2025 00:00Code HintsCode HintsRUSTrust-1.84.0Error
Feb 5, 2025 23:56Code HintsCode HintsRUSTrust-1.84.0Success93,184
Feb 5, 2025 23:49Code HintsCode HintsRUSTrust-1.84.0Success94,886
Feb 5, 2025 23:46Code HintsCode HintsRUSTrust-1.84.0Success93,516
Feb 5, 2025 23:45Code HintsCode HintsRUSTrust-1.84.0Success92,921
Feb 5, 2025 23:45Code HintsCode HintsRUSTrust-1.84.0Success95,955
Feb 5, 2025 23:36Code HintsCode HintsRUSTrust-1.84.0Success96,543
Feb 5, 2025 23:34Code HintsCode HintsRUSTrust-1.84.0Success93,898
Feb 5, 2025 23:32Code HintsCode HintsRUSTrust-1.84.0Success94,962
Feb 5, 2025 23:28Code HintsCode HintsRUSTrust-1.84.0Success93,729
Feb 5, 2025 23:07Code HintsCode HintsRUSTrust-1.84.0Success93,909
Feb 5, 2025 23:05Code HintsCode HintsRUSTrust-1.84.0Success93,193
Feb 5, 2025 22:54Code HintsCode HintsRUSTrust-1.84.0Success93,478
Feb 5, 2025 22:38Code HintsCode HintsRUSTrust-1.84.0Error
Feb 5, 2025 22:31Code HintsCode HintsRUSTrust-1.84.0Success94,700
Feb 5, 2025 22:26Code HintsCode HintsRUSTrust-1.84.0Error
Feb 5, 2025 22:24Code HintsCode HintsRUSTrust-1.84.0Error
Feb 5, 2025 22:20Code HintsCode HintsRUSTrust-1.84.0Error
Feb 5, 2025 22:09Code HintsCode HintsRUSTrust-1.84.0Success111,871
Feb 5, 2025 22:00Code HintsCode HintsRUSTrust-1.84.0Success129,740
Feb 5, 2025 16:08Daniel HarrisDaniel HarrisRUSTrust-1.84.1Success5,264,340+0.01 RP
Feb 5, 2025 15:45Daniel HarrisDaniel HarrisRUSTrust-1.84.1Success5,464,069
Feb 5, 2025 15:39Daniel HarrisDaniel HarrisRUSTrust-1.84.1Success5,300,014+0.14 RP
Feb 5, 2025 15:02Daniel HarrisDaniel HarrisRUSTrust-1.84.1Success5,728,847
Feb 5, 2025 14:50Daniel HarrisDaniel HarrisRUSTrust-1.84.1Success5,710,560+1.75 RP
Feb 5, 2025 14:47Daniel HarrisDaniel HarrisRUSTrust-1.84.1Error
Feb 5, 2025 14:36Daniel HarrisDaniel HarrisRUSTrust-1.84.1Error
Feb 5, 2025 14:19Daniel HarrisDaniel HarrisRUSTrust-1.84.1Error
Feb 5, 2025 14:18Daniel HarrisDaniel HarrisRUSTrust-1.84.1Error
Feb 5, 2025 14:15Daniel HarrisDaniel HarrisRUSTrust-1.84.1Error
Feb 5, 2025 12:48Daniel HarrisDaniel HarrisRUSTrust-1.84.1Error
Feb 5, 2025 12:21Daniel HarrisDaniel HarrisRUSTrust-1.84.1Error
Feb 5, 2025 12:16Daniel HarrisDaniel HarrisRUSTrust-1.84.1Error
Feb 5, 2025 12:11Daniel HarrisDaniel HarrisRUSTrust-1.84.1Error
Feb 5, 2025 11:58Daniel HarrisDaniel HarrisRUSTrust-1.84.1Error
Feb 4, 2025 23:58Daniel HarrisDaniel HarrisRUSTrust-1.84.1Error
Feb 4, 2025 22:50Daniel HarrisDaniel HarrisRUSTrust-1.84.1Error
Feb 4, 2025 22:49Daniel HarrisDaniel HarrisRUSTrust-1.84.1Error
Feb 4, 2025 22:46Daniel HarrisDaniel HarrisRUSTrust-1.84.1Error
Feb 4, 2025 22:23Daniel HarrisDaniel HarrisRUSTrust-1.84.1Error
Feb 4, 2025 17:16Oleg KovalovOleg KovalovCPPclang++18.1.3Success2,466,141
Feb 3, 2025 05:40NoSIMD_C#NoSIMD_C#CPPg++13.2.0Success2,209,078
Feb 3, 2025 05:31NoSIMD_C#NoSIMD_C#CPPclang++18.1.3Success2,221,748
Feb 2, 2025 22:19Code HintsCode HintsRUSTrust-1.84.0Error
Feb 2, 2025 21:08Code HintsCode HintsRUSTrust-1.84.0Error
Feb 2, 2025 19:18HighloadGPT-o3-mini-highHighloadGPT-o3-mini-highCPPg++13.2.0Success238,743+0.11 RP
Feb 2, 2025 19:13HighloadGPT-o3-mini-highHighloadGPT-o3-mini-highCPPclang++18.1.3Success239,353+41.78 RP
Feb 2, 2025 15:39Code HintsCode HintsRUSTrust-1.84.0Error
Feb 2, 2025 15:16Code HintsCode HintsRUSTrust-1.84.0Error
Feb 2, 2025 15:11Code HintsCode HintsRUSTrust-1.84.0Error
Feb 2, 2025 13:26Code HintsCode HintsRUSTrust-1.84.0Success112,131
Feb 2, 2025 13:24Code HintsCode HintsRUSTrust-1.84.0Success110,781
Feb 2, 2025 13:22Code HintsCode HintsRUSTrust-1.84.0Success111,328
Feb 2, 2025 13:20Code HintsCode HintsRUSTrust-1.84.0Success110,222
Feb 2, 2025 13:19Code HintsCode HintsRUSTrust-1.84.0Error
Feb 2, 2025 10:31alxmrcktralxmrcktrRUSTrust-1.84.0Error
Feb 2, 2025 10:30alxmrcktralxmrcktrRUSTrust-1.84.0Error
Feb 2, 2025 10:29alxmrcktralxmrcktrRUSTrust-1.84.0Error
Feb 2, 2025 04:39Code HintsCode HintsRUSTrust-1.84.0Success93,853
Feb 2, 2025 04:37Code HintsCode HintsRUSTrust-1.84.0Success170,069
Feb 2, 2025 04:35Code HintsCode HintsRUSTrust-1.84.0Error
Feb 2, 2025 03:03Code HintsCode HintsRUSTrust-1.84.0Error
Feb 2, 2025 03:02Code HintsCode HintsRUSTrust-1.84.0Error
Feb 2, 2025 02:52Code HintsCode HintsRUSTrust-1.84.0Error
Feb 2, 2025 02:44Code HintsCode HintsRUSTrust-1.84.0Success1,175,052
Feb 2, 2025 02:41Code HintsCode HintsRUSTrust-1.84.0Success1,163,969
Feb 2, 2025 02:26Code HintsCode HintsRUSTrust-1.84.0Error
Feb 2, 2025 02:25Code HintsCode HintsRUSTrust-1.84.0Error
Feb 2, 2025 02:08Code HintsCode HintsRUSTrust-1.84.0Success913,971
Feb 2, 2025 02:07Code HintsCode HintsRUSTrust-1.84.0Error
Feb 2, 2025 01:46Code HintsCode HintsRUSTrust-1.84.0Success1,036,528
Feb 2, 2025 01:38Code HintsCode HintsRUSTrust-1.84.0Error
Feb 2, 2025 01:36Code HintsCode HintsRUSTrust-1.84.0Error
Feb 2, 2025 01:27Code HintsCode HintsRUSTrust-1.84.0Error
Feb 2, 2025 01:23Code HintsCode HintsRUSTrust-1.84.0Error
Feb 2, 2025 01:13Code HintsCode HintsRUSTrust-1.84.0Error
Feb 2, 2025 01:08Code HintsCode HintsRUSTrust-1.84.0Error
Feb 2, 2025 01:07Code HintsCode HintsRUSTrust-1.84.0Error
Feb 2, 2025 00:59Code HintsCode HintsRUSTrust-1.84.0Success142,878
Feb 2, 2025 00:52Code HintsCode HintsRUSTrust-1.84.0Success92,278
Feb 2, 2025 00:52Code HintsCode HintsRUSTrust-1.84.0Error
Feb 2, 2025 00:50Code HintsCode HintsRUSTrust-1.84.0Error
Feb 2, 2025 00:46alxmrcktralxmrcktrRUSTrust-1.84.0Error
Feb 2, 2025 00:43Code HintsCode HintsRUSTrust-1.84.0Error
Feb 2, 2025 00:42alxmrcktralxmrcktrRUSTrust-1.84.0Error
Feb 2, 2025 00:42Code HintsCode HintsRUSTrust-1.84.0Error
Feb 2, 2025 00:30Code HintsCode HintsRUSTrust-1.84.0Error
Feb 2, 2025 00:29Code HintsCode HintsRUSTrust-1.84.0Error
Feb 2, 2025 00:28Code HintsCode HintsRUSTrust-1.84.0Error
Feb 2, 2025 00:17Code HintsCode HintsRUSTrust-1.84.0Error
Feb 2, 2025 00:15Code HintsCode HintsRUSTrust-1.84.0Error
Feb 2, 2025 00:12Code HintsCode HintsRUSTrust-1.84.0Error
Feb 1, 2025 22:26Code HintsCode HintsRUSTrust-1.84.0Error
Feb 1, 2025 22:21alxmrcktralxmrcktrRUSTrust-1.84.0Success141,324
Feb 1, 2025 22:20Code HintsCode HintsRUSTrust-1.84.0Error
Feb 1, 2025 21:43E SequeiraE SequeiraGOgo1.23.3Success125,366
Feb 1, 2025 21:41E SequeiraE SequeiraGOgo1.23.3Success124,152
Feb 1, 2025 21:40E SequeiraE SequeiraGOgo1.23.3Success127,741
Feb 1, 2025 21:38E SequeiraE SequeiraGOgo1.23.3Error