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 23, 2026 16:18mhorsley30896mhorsley30896RUSTrust-1.93.1Success91,224
Feb 23, 2026 16:10mhorsley30896mhorsley30896RUSTrust-1.93.1Error+89.57 RP
Feb 23, 2026 16:08Aatif SyedAatif SyedRUSTrust-1.93.1Error
Feb 23, 2026 15:56mhorsley30896mhorsley30896RUSTrust-1.93.1Error+21.30 RP
Feb 23, 2026 15:39Aatif SyedAatif SyedRUSTrust-1.93.1Error
Feb 23, 2026 15:37Aatif SyedAatif SyedRUSTrust-1.93.1Error
Feb 23, 2026 15:16Jem BishopJem BishopRUSTrust-1.93.1Error+16.24 RP
Feb 23, 2026 15:02Jem BishopJem BishopRUSTrust-1.93.1Error+11.17 RP
Feb 23, 2026 12:23Jem BishopJem BishopRUSTrust-1.93.1Error+25.25 RP
Feb 23, 2026 11:49Jem BishopJem BishopRUSTrust-1.93.1Error+123.18 RP
Feb 23, 2026 11:22Jem BishopJem BishopRUSTrust-1.93.1Success148,826+4.71 RP
Feb 23, 2026 11:18Jem BishopJem BishopRUSTrust-1.93.1Error+62.49 RP
Feb 19, 2026 03:17Josu San MartinJosu San MartinCPPg++13.3.0Error
Feb 19, 2026 03:13Josu San MartinJosu San MartinCPPg++13.3.0Error
Feb 19, 2026 03:03Josu San MartinJosu San MartinCPPg++13.3.0Error+16.08 RP
Feb 19, 2026 02:54Josu San MartinJosu San MartinCPPg++13.3.0Error
Feb 19, 2026 02:36Josu San MartinJosu San MartinCPPg++13.3.0Error
Feb 19, 2026 02:34Josu San MartinJosu San MartinCPPg++13.3.0Error
Feb 19, 2026 02:33Josu San MartinJosu San MartinCPPg++13.3.0Error
Feb 19, 2026 02:32Josu San MartinJosu San MartinCPPg++13.3.0Error
Feb 19, 2026 02:30Josu San MartinJosu San MartinCPPg++13.3.0Error
Feb 19, 2026 02:16Josu San MartinJosu San MartinCPPg++13.3.0Error
Feb 19, 2026 02:15Josu San MartinJosu San MartinCPPg++13.3.0Error
Feb 19, 2026 02:06Josu San MartinJosu San MartinCPPg++13.3.0Error
Feb 19, 2026 02:02Josu San MartinJosu San MartinCPPg++13.3.0Error
Feb 19, 2026 01:57Josu San MartinJosu San MartinCPPg++13.3.0Error
Feb 19, 2026 01:54Josu San MartinJosu San MartinCPPg++13.3.0Error
Feb 19, 2026 01:53Josu San MartinJosu San MartinCPPg++13.3.0Error+30.17 RP
Feb 19, 2026 01:49Josu San MartinJosu San MartinCPPg++13.3.0Error
Feb 19, 2026 01:43Josu San MartinJosu San MartinCPPg++13.3.0Error
Feb 19, 2026 01:38Josu San MartinJosu San MartinCPPg++13.3.0Error+19.04 RP
Feb 19, 2026 01:27Josu San MartinJosu San MartinCPPg++13.3.0Error
Feb 19, 2026 01:25Josu San MartinJosu San MartinCPPg++13.3.0Error
Feb 19, 2026 01:22Josu San MartinJosu San MartinCPPg++13.3.0Error
Feb 19, 2026 01:21Josu San MartinJosu San MartinCPPg++13.3.0Error
Feb 19, 2026 01:20Josu San MartinJosu San MartinCPPg++13.3.0Error
Feb 19, 2026 01:19Josu San MartinJosu San MartinCPPg++13.3.0Error
Feb 19, 2026 01:18Josu San MartinJosu San MartinCPPg++13.3.0Error
Feb 19, 2026 01:16Josu San MartinJosu San MartinCPPg++13.3.0Error
Feb 19, 2026 01:15Josu San MartinJosu San MartinCPPg++13.3.0Error
Feb 19, 2026 01:10Josu San MartinJosu San MartinCPPg++13.3.0Error
Feb 19, 2026 01:08Josu San MartinJosu San MartinCPPg++13.3.0Error
Feb 19, 2026 01:07Josu San MartinJosu San MartinCPPg++13.3.0Error
Feb 19, 2026 01:06Josu San MartinJosu San MartinCPPg++13.3.0Error
Feb 19, 2026 01:03Josu San MartinJosu San MartinCPPg++13.3.0Error
Feb 19, 2026 01:02Josu San MartinJosu San MartinCPPg++13.3.0Error+56.87 RP
Feb 19, 2026 00:57Josu San MartinJosu San MartinCPPg++13.3.0Error
Feb 19, 2026 00:53Josu San MartinJosu San MartinCPPg++13.3.0Error
Feb 19, 2026 00:38Josu San MartinJosu San MartinCPPg++13.3.0Error
Feb 19, 2026 00:37Josu San MartinJosu San MartinCPPg++13.3.0Error
Feb 19, 2026 00:36Josu San MartinJosu San MartinCPPg++13.3.0Error
Feb 19, 2026 00:33Josu San MartinJosu San MartinCPPg++13.3.0Error
Feb 19, 2026 00:32Josu San MartinJosu San MartinCPPg++13.3.0Error
Feb 19, 2026 00:29Josu San MartinJosu San MartinCPPg++13.3.0Error
Feb 19, 2026 00:28Josu San MartinJosu San MartinCPPg++13.3.0Error
Feb 19, 2026 00:26Josu San MartinJosu San MartinCPPg++13.3.0Error+123.24 RP
Feb 19, 2026 00:15Josu San MartinJosu San MartinCPPg++13.3.0Error
Feb 19, 2026 00:13Josu San MartinJosu San MartinCPPg++13.3.0Error
Feb 19, 2026 00:12Josu San MartinJosu San MartinCPPg++13.3.0Error
Feb 19, 2026 00:06Josu San MartinJosu San MartinCPPg++13.3.0Error
Feb 19, 2026 00:03Josu San MartinJosu San MartinCPPg++13.3.0Error+104.26 RP
Feb 19, 2026 00:01Josu San MartinJosu San MartinCPPg++13.3.0Error
Feb 19, 2026 00:00Josu San MartinJosu San MartinCPPg++13.3.0Error
Feb 18, 2026 23:59Josu San MartinJosu San MartinCPPg++13.3.0Error
Feb 18, 2026 23:57Josu San MartinJosu San MartinCPPg++13.3.0Error
Feb 18, 2026 23:52Josu San MartinJosu San MartinCPPg++13.3.0Error
Feb 18, 2026 23:47Josu San MartinJosu San MartinCPPg++13.3.0Error
Feb 18, 2026 23:46Josu San MartinJosu San MartinCPPg++13.3.0Error+179.86 RP
Feb 18, 2026 23:43Josu San MartinJosu San MartinCPPg++13.3.0Error
Feb 18, 2026 23:37Josu San MartinJosu San MartinCPPg++13.3.0Error+72.72 RP
Feb 18, 2026 23:26Josu San MartinJosu San MartinCPPg++13.3.0Error
Feb 18, 2026 23:25Josu San MartinJosu San MartinCPPg++13.3.0Error
Feb 18, 2026 23:24Josu San MartinJosu San MartinCPPg++13.3.0Error+378.86 RP
Feb 18, 2026 23:23Josu San MartinJosu San MartinCPPg++13.3.0Error
Feb 18, 2026 23:14Josu San MartinJosu San MartinCPPg++13.3.0Error+9.23 RP
Feb 18, 2026 23:11Josu San MartinJosu San MartinCPPg++13.3.0Error
Feb 18, 2026 23:09Josu San MartinJosu San MartinCPPg++13.3.0Error
Feb 17, 2026 13:30olliecrowolliecrowCPPg++13.3.0Success126,241
Feb 14, 2026 11:06Juraj ZelmanJuraj ZelmanRUSTrust-1.93.1Error
Feb 14, 2026 11:04Juraj ZelmanJuraj ZelmanRUSTrust-1.93.1Error
Feb 14, 2026 09:25Juraj ZelmanJuraj ZelmanRUSTrust-1.91.1Error+28.78 RP
Feb 14, 2026 09:06Juraj ZelmanJuraj ZelmanRUSTrust-1.91.1Error
Feb 13, 2026 22:06Juraj ZelmanJuraj ZelmanRUSTrust-1.91.1Error
Feb 13, 2026 01:10Code HintsCode HintsGOgo1.26.0Success51,495
Feb 13, 2026 01:03Code HintsCode HintsCPPg++13.3.0Error
Feb 13, 2026 01:02Code HintsCode HintsCSHARP9.0.13Success52,786+11.63 RP
Feb 13, 2026 00:59Code HintsCode HintsCSHARP9.0.13Success56,364
Feb 13, 2026 00:44Code HintsCode HintsCPPg++13.3.0Success45,416
Feb 13, 2026 00:43Code HintsCode HintsRUSTrust-1.93.1Success94,612
Feb 13, 2026 00:33Code HintsCode HintsRUSTrust-1.93.1Error
Feb 13, 2026 00:31Code HintsCode HintsRUSTrust-1.93.1Error
Feb 13, 2026 00:20Code HintsCode HintsRUSTrust-1.93.1Success61,402
Feb 13, 2026 00:09Code HintsCode HintsRUSTrust-1.93.1Success54,167
Feb 12, 2026 23:55Code HintsCode HintsRUSTrust-1.93.1Success88,221
Feb 12, 2026 23:49Code HintsCode HintsRUSTrust-1.93.1Error
Feb 12, 2026 23:45Code HintsCode HintsRUSTrust-1.92.0Error
Feb 12, 2026 23:40Code HintsCode HintsRUSTrust-1.93.1Error
Feb 12, 2026 23:38Code HintsCode HintsRUSTrust-1.93.1Error
Feb 12, 2026 23:31Code HintsCode HintsRUSTrust-1.93.1Error
Feb 12, 2026 23:31Code HintsCode HintsRUSTrust-1.93.1Error+1.91 RP