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
Aug 19, 2026 06:06lh14576lh14576CPPg++10.5.0Success213,160
Aug 18, 2026 19:39Uladzislau NestsiarukUladzislau NestsiarukCPPclang++20.1.2Error
Aug 18, 2026 19:33Uladzislau NestsiarukUladzislau NestsiarukCPPclang++20.1.2Error+8.88 RP
Aug 18, 2026 19:30Uladzislau NestsiarukUladzislau NestsiarukCPPclang++20.1.2Error
Aug 18, 2026 19:27Uladzislau NestsiarukUladzislau NestsiarukCPPclang++20.1.2Error
Aug 18, 2026 19:24Uladzislau NestsiarukUladzislau NestsiarukCPPclang++20.1.2Success45,206
Aug 18, 2026 19:22Uladzislau NestsiarukUladzislau NestsiarukCPPclang++20.1.2Error
Aug 18, 2026 19:21Uladzislau NestsiarukUladzislau NestsiarukCPPclang++20.1.2Error+1.89 RP
Aug 18, 2026 19:15Uladzislau NestsiarukUladzislau NestsiarukCPPclang++20.1.2Error
Aug 18, 2026 18:55Uladzislau NestsiarukUladzislau NestsiarukCPPclang++20.1.2Error
Aug 18, 2026 18:52Uladzislau NestsiarukUladzislau NestsiarukCPPclang++20.1.2Error
Aug 18, 2026 18:50Uladzislau NestsiarukUladzislau NestsiarukCPPclang++20.1.2Error
Aug 18, 2026 16:11lh14576lh14576CPPg++10.5.0Success116,481+1.71 RP
Aug 18, 2026 16:01lh14576lh14576CPPg++10.5.0Error+50.67 RP
Aug 18, 2026 15:21lh14576lh14576CPPg++10.5.0Success298,696+13.38 RP
Aug 18, 2026 14:21Uladzislau NestsiarukUladzislau NestsiarukCPPclang++20.1.2Error
Aug 18, 2026 14:20Uladzislau NestsiarukUladzislau NestsiarukCPPclang++20.1.2Error
Aug 18, 2026 14:19Uladzislau NestsiarukUladzislau NestsiarukCPPg++10.5.0Error
Aug 18, 2026 14:18Uladzislau NestsiarukUladzislau NestsiarukCPPclang++20.1.2Error
Aug 18, 2026 14:16Uladzislau NestsiarukUladzislau NestsiarukCPPclang++20.1.2Error
Aug 18, 2026 14:14Uladzislau NestsiarukUladzislau NestsiarukCPPclang++20.1.2Error+4.44 RP
Aug 18, 2026 14:14Uladzislau NestsiarukUladzislau NestsiarukCPPclang++20.1.2Error+1.20 RP
Aug 18, 2026 14:11Uladzislau NestsiarukUladzislau NestsiarukCPPclang++20.1.2Error+32.76 RP
Aug 18, 2026 14:05Uladzislau NestsiarukUladzislau NestsiarukCPPclang++20.1.2Success46,836+26.34 RP
Aug 18, 2026 14:02Uladzislau NestsiarukUladzislau NestsiarukCPPclang++20.1.2Error
Aug 18, 2026 13:54Uladzislau NestsiarukUladzislau NestsiarukCPPclang++20.1.2Success57,832
Aug 18, 2026 13:46Uladzislau NestsiarukUladzislau NestsiarukCPPclang++20.1.2Success53,427+4.53 RP
Aug 18, 2026 13:41Uladzislau NestsiarukUladzislau NestsiarukCPPclang++20.1.2Success56,179
Aug 18, 2026 13:39Uladzislau NestsiarukUladzislau NestsiarukCPPclang++20.1.2Error
Aug 18, 2026 13:35Uladzislau NestsiarukUladzislau NestsiarukCPPclang++20.1.2Error
Aug 18, 2026 13:34Uladzislau NestsiarukUladzislau NestsiarukCPPclang++20.1.2Success54,753+0.35 RP
Aug 18, 2026 13:31Uladzislau NestsiarukUladzislau NestsiarukCPPclang++20.1.2Success66,406
Aug 18, 2026 13:30Uladzislau NestsiarukUladzislau NestsiarukCPPclang++20.1.2Success54,858+0.24 RP
Aug 18, 2026 13:27lh14576lh14576CPPg++10.5.0Error
Aug 18, 2026 11:27Uladzislau NestsiarukUladzislau NestsiarukCPPclang++20.1.2Success73,968
Aug 18, 2026 09:13Uladzislau NestsiarukUladzislau NestsiarukCPPclang++20.1.2Success70,187
Aug 18, 2026 09:11Uladzislau NestsiarukUladzislau NestsiarukCPPclang++20.1.2Success71,387
Aug 18, 2026 09:10Uladzislau NestsiarukUladzislau NestsiarukCPPclang++20.1.2Success74,096
Aug 18, 2026 09:01Uladzislau NestsiarukUladzislau NestsiarukCPPclang++20.1.2Error
Aug 18, 2026 08:54Uladzislau NestsiarukUladzislau NestsiarukCPPg++10.5.0Error
Aug 18, 2026 08:53Uladzislau NestsiarukUladzislau NestsiarukCPPclang++20.1.2Error
Aug 18, 2026 08:49Uladzislau NestsiarukUladzislau NestsiarukCPPclang++20.1.2Error
Aug 18, 2026 03:46Victor MerckléVictor MerckléCSHARP10.0.7Error
Aug 18, 2026 02:46Victor MerckléVictor MerckléCSHARP10.0.7Error
Aug 18, 2026 02:17Victor MerckléVictor MerckléCSHARP10.0.7Error
Aug 18, 2026 00:13Victor MerckléVictor MerckléCSHARP10.0.7Error
Aug 17, 2026 23:52Victor MerckléVictor MerckléCSHARP10.0.7Error
Aug 17, 2026 23:29Victor MerckléVictor MerckléCSHARP10.0.7Error
Aug 17, 2026 22:42Victor MerckléVictor MerckléCSHARP10.0.7Error
Aug 17, 2026 22:14Victor MerckléVictor MerckléCSHARP10.0.7Error
Aug 17, 2026 22:01lh14576lh14576CPPg++10.5.0Success497,474+20.10 RP
Aug 17, 2026 21:38lh14576lh14576CPPg++10.5.0Error
Aug 17, 2026 21:00Uladzislau NestsiarukUladzislau NestsiarukCPPclang++20.1.2Success56,120
Aug 17, 2026 20:54Uladzislau NestsiarukUladzislau NestsiarukCPPclang++20.1.2Success55,155
Aug 17, 2026 20:43Uladzislau NestsiarukUladzislau NestsiarukCPPclang++20.1.2Success54,929+28.03 RP
Aug 17, 2026 20:33Uladzislau NestsiarukUladzislau NestsiarukCPPclang++20.1.2Success65,527
Aug 17, 2026 20:27Uladzislau NestsiarukUladzislau NestsiarukCPPclang++20.1.2Error+56.20 RP
Aug 17, 2026 20:16Uladzislau NestsiarukUladzislau NestsiarukCPPclang++20.1.2Error
Aug 17, 2026 20:12Uladzislau NestsiarukUladzislau NestsiarukCPPclang++20.1.2Error
Aug 17, 2026 20:09Uladzislau NestsiarukUladzislau NestsiarukCPPclang++20.1.2Error
Aug 17, 2026 20:04Uladzislau NestsiarukUladzislau NestsiarukCPPclang++20.1.2Error
Aug 17, 2026 19:56Uladzislau NestsiarukUladzislau NestsiarukCPPclang++20.1.2Success119,351
Aug 17, 2026 19:51Uladzislau NestsiarukUladzislau NestsiarukCPPclang++20.1.2Error
Aug 17, 2026 19:44Uladzislau NestsiarukUladzislau NestsiarukCPPclang++20.1.2Success119,003
Aug 17, 2026 19:39Uladzislau NestsiarukUladzislau NestsiarukCPPclang++20.1.2Success131,191
Aug 17, 2026 19:32Uladzislau NestsiarukUladzislau NestsiarukCPPclang++20.1.2Error
Aug 17, 2026 19:24Uladzislau NestsiarukUladzislau NestsiarukCPPclang++20.1.2Success136,744
Aug 17, 2026 19:23Uladzislau NestsiarukUladzislau NestsiarukCPPclang++20.1.2Error
Aug 17, 2026 16:59Uladzislau NestsiarukUladzislau NestsiarukCPPg++14.2.0Success117,732
Aug 17, 2026 16:56Uladzislau NestsiarukUladzislau NestsiarukCPPclang++20.1.2Error
Aug 17, 2026 16:53Uladzislau NestsiarukUladzislau NestsiarukCPPclang++20.1.2Error
Aug 17, 2026 16:44Uladzislau NestsiarukUladzislau NestsiarukCPPclang++20.1.2Success108,856
Aug 17, 2026 16:43Uladzislau NestsiarukUladzislau NestsiarukCPPclang++20.1.2Success117,356
Aug 17, 2026 16:37Uladzislau NestsiarukUladzislau NestsiarukCPPclang++20.1.2Error
Aug 17, 2026 16:37Uladzislau NestsiarukUladzislau NestsiarukCPPclang++20.1.2Error
Aug 17, 2026 16:27Uladzislau NestsiarukUladzislau NestsiarukCPPclang++20.1.2Error
Aug 16, 2026 23:15Tomislav TunkovicTomislav TunkovicZIG0.15.1Error
Aug 16, 2026 23:14Tomislav TunkovicTomislav TunkovicGOgo1.26.2Success159,836
Aug 16, 2026 23:12Tomislav TunkovicTomislav TunkovicRUSTrust-1.95.0Error
Aug 16, 2026 19:08Uladzislau NestsiarukUladzislau NestsiarukCPPclang++20.1.2Success113,351
Aug 16, 2026 19:04Uladzislau NestsiarukUladzislau NestsiarukCPPclang++20.1.2Success127,818
Aug 16, 2026 18:55Uladzislau NestsiarukUladzislau NestsiarukCPPclang++20.1.2Success106,750
Aug 16, 2026 18:51Uladzislau NestsiarukUladzislau NestsiarukCPPclang++20.1.2Error
Aug 16, 2026 18:35Uladzislau NestsiarukUladzislau NestsiarukCPPg++10.5.0Success122,884
Aug 16, 2026 18:33Uladzislau NestsiarukUladzislau NestsiarukCPPclang++20.1.2Success130,287
Aug 16, 2026 18:31Uladzislau NestsiarukUladzislau NestsiarukCPPclang++20.1.2Error
Aug 16, 2026 18:25Uladzislau NestsiarukUladzislau NestsiarukCPPclang++20.1.2Success110,536
Aug 16, 2026 18:21Uladzislau NestsiarukUladzislau NestsiarukCPPclang++20.1.2Success129,672
Aug 16, 2026 18:17Uladzislau NestsiarukUladzislau NestsiarukCPPclang++20.1.2Success102,227+3.52 RP
Aug 16, 2026 18:08Uladzislau NestsiarukUladzislau NestsiarukCPPclang++20.1.2Success106,048+1.14 RP
Aug 16, 2026 18:03Uladzislau NestsiarukUladzislau NestsiarukCPPg++10.5.0Success144,381
Aug 16, 2026 17:52Uladzislau NestsiarukUladzislau NestsiarukCPPclang++20.1.2Success113,670
Aug 16, 2026 17:49Uladzislau NestsiarukUladzislau NestsiarukCPPclang++20.1.2Error
Aug 16, 2026 13:41Uladzislau NestsiarukUladzislau NestsiarukCPPclang++20.1.2Success129,124
Aug 16, 2026 13:39Uladzislau NestsiarukUladzislau NestsiarukCPPclang++20.1.2Success138,855
Aug 16, 2026 13:38Uladzislau NestsiarukUladzislau NestsiarukCPPclang++20.1.2Error
Aug 16, 2026 13:24Uladzislau NestsiarukUladzislau NestsiarukCPPclang++20.1.2Success108,815
Aug 16, 2026 13:19Uladzislau NestsiarukUladzislau NestsiarukCPPclang++20.1.2Success115,522
Aug 16, 2026 13:11Uladzislau NestsiarukUladzislau NestsiarukCPPclang++20.1.2Success5,903,846
Aug 16, 2026 13:07Uladzislau NestsiarukUladzislau NestsiarukCPPclang++20.1.2Success135,722