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
Dec 25, 2025 01:22Josu San MartinJosu San MartinCPPg++13.3.0Error
Dec 24, 2025 03:00RussellStrongRussellStrongRUSTrust-1.92.0Success110,126+1.45 RP
Dec 24, 2025 02:59RussellStrongRussellStrongRUSTrust-1.92.0Success112,155
Dec 24, 2025 02:58RussellStrongRussellStrongRUSTrust-1.92.0Success111,907+17.64 RP
Dec 24, 2025 02:45RussellStrongRussellStrongRUSTrust-1.92.0Success139,429+0.13 RP
Dec 24, 2025 02:44RussellStrongRussellStrongRUSTrust-1.72.0Success158,616
Dec 24, 2025 02:43RussellStrongRussellStrongRUSTrust-1.92.0Error+39.83 RP
Dec 24, 2025 01:39HattonuriHattonuriCPPg++13.3.0Error
Dec 24, 2025 01:20HattonuriHattonuriCPPg++13.3.0Error
Dec 24, 2025 00:49HattonuriHattonuriCPPg++13.3.0Error
Dec 24, 2025 00:44HattonuriHattonuriCPPg++13.3.0Error+3.18 RP
Dec 23, 2025 23:47RussellStrongRussellStrongRUSTrust-1.79.0Success335,007
Dec 23, 2025 23:46RussellStrongRussellStrongRUSTrust-1.72.0Success314,821+0.95 RP
Dec 23, 2025 23:45HattonuriHattonuriCPPg++13.3.0Error
Dec 23, 2025 23:44RussellStrongRussellStrongRUSTrust-1.92.0Success333,067
Dec 23, 2025 23:43RussellStrongRussellStrongRUSTrust-1.89.0Success324,572+2.24 RP
Dec 23, 2025 23:34HattonuriHattonuriCPPg++13.3.0Error+4.81 RP
Dec 23, 2025 23:30HattonuriHattonuriCPPg++13.3.0Error
Dec 23, 2025 23:26HattonuriHattonuriCPPg++13.3.0Error
Dec 23, 2025 19:13HattonuriHattonuriCPPg++13.3.0Error
Dec 23, 2025 16:27Josu San MartinJosu San MartinCPPg++13.3.0Error
Dec 23, 2025 16:26Josu San MartinJosu San MartinCPPg++13.3.0Error
Dec 23, 2025 16:26Josu San MartinJosu San MartinCPPg++13.3.0Error
Dec 23, 2025 16:26Josu San MartinJosu San MartinCPPg++13.3.0Error
Dec 23, 2025 16:26Josu San MartinJosu San MartinCPPg++13.3.0Error
Dec 23, 2025 16:25Josu San MartinJosu San MartinCPPg++13.3.0Error
Dec 23, 2025 15:27Josu San MartinJosu San MartinRUSTrust-1.92.0Error
Dec 23, 2025 14:52Josu San MartinJosu San MartinCPPg++13.3.0Error+1.99 RP
Dec 23, 2025 14:51Josu San MartinJosu San MartinCPPg++13.3.0Error+0.08 RP
Dec 23, 2025 14:51Josu San MartinJosu San MartinCPPg++13.3.0Error
Dec 23, 2025 14:51Josu San MartinJosu San MartinCPPg++13.3.0Error+2.54 RP
Dec 23, 2025 14:51Josu San MartinJosu San MartinCPPg++13.3.0Error
Dec 23, 2025 14:50Josu San MartinJosu San MartinCPPg++13.3.0Error
Dec 23, 2025 10:56Liquidity GoblinLiquidity GoblinRUSTrust-1.92.0Success215,922
Dec 23, 2025 10:54Liquidity GoblinLiquidity GoblinRUSTrust-1.92.0Error
Dec 23, 2025 05:45Josu San MartinJosu San MartinCPPg++13.3.0Error
Dec 23, 2025 05:42Josu San MartinJosu San MartinCPPg++13.3.0Error
Dec 23, 2025 05:42Josu San MartinJosu San MartinCPPclang++18.1.3Error
Dec 23, 2025 05:41Josu San MartinJosu San MartinCPPg++13.3.0Error
Dec 23, 2025 05:41Josu San MartinJosu San MartinCPPg++13.3.0Error
Dec 23, 2025 05:41Josu San MartinJosu San MartinCPPg++13.3.0Success45,681
Dec 23, 2025 05:41Josu San MartinJosu San MartinCPPg++13.3.0Error
Dec 23, 2025 05:34Josu San MartinJosu San MartinCPPg++13.3.0Error
Dec 23, 2025 05:03Josu San MartinJosu San MartinGOgo1.25.5Success52,600
Dec 23, 2025 04:59Josu San MartinJosu San MartinGOgo1.25.5Success50,891+19.35 RP
Dec 23, 2025 04:16Josu San MartinJosu San MartinCPPg++13.3.0Error
Dec 23, 2025 04:15Josu San MartinJosu San MartinCPPg++13.3.0Error
Dec 23, 2025 04:15Josu San MartinJosu San MartinCPPg++13.3.0Error
Dec 23, 2025 04:06Josu San MartinJosu San MartinCPPg++13.3.0Success55,407
Dec 23, 2025 04:06Josu San MartinJosu San MartinCPPclang++18.1.3Success56,129
Dec 23, 2025 01:02RussellStrongRussellStrongRUSTrust-1.92.0Success392,203
Dec 22, 2025 19:57Josu San MartinJosu San MartinCPPclang++18.1.3Error
Dec 22, 2025 19:55Josu San MartinJosu San MartinCPPg++13.3.0Error
Dec 22, 2025 19:55Josu San MartinJosu San MartinCPPg++13.3.0Error
Dec 22, 2025 19:55Josu San MartinJosu San MartinCPPg++13.3.0Error
Dec 22, 2025 19:54Josu San MartinJosu San MartinCPPg++13.3.0Error
Dec 22, 2025 16:32Josu San MartinJosu San MartinCPPg++13.3.0Error+0.40 RP
Dec 22, 2025 14:57Josu San MartinJosu San MartinCPPg++13.3.0Error
Dec 22, 2025 14:57Josu San MartinJosu San MartinCPPg++13.3.0Error
Dec 22, 2025 14:56Josu San MartinJosu San MartinCPPclang++18.1.3Error
Dec 22, 2025 14:56Josu San MartinJosu San MartinCPPg++13.3.0Error
Dec 22, 2025 14:56Josu San MartinJosu San MartinCPPg++13.3.0Error
Dec 22, 2025 14:54Josu San MartinJosu San MartinCPPclang++18.1.3Error
Dec 22, 2025 14:54Josu San MartinJosu San MartinCPPclang++18.1.3Error
Dec 22, 2025 14:53Josu San MartinJosu San MartinCPPg++13.3.0Error
Dec 22, 2025 14:53Josu San MartinJosu San MartinCPPg++13.3.0Error
Dec 22, 2025 14:53Josu San MartinJosu San MartinCPPclang++18.1.3Error
Dec 22, 2025 14:52Josu San MartinJosu San MartinCPPg++13.3.0Error
Dec 22, 2025 14:52Josu San MartinJosu San MartinCPPg++13.3.0Error+0.57 RP
Dec 22, 2025 14:51Josu San MartinJosu San MartinCPPg++13.3.0Error
Dec 22, 2025 14:51Josu San MartinJosu San MartinCPPg++13.3.0Error
Dec 22, 2025 14:51Josu San MartinJosu San MartinCPPg++13.3.0Error
Dec 22, 2025 14:50Josu San MartinJosu San MartinCPPg++13.3.0Error
Dec 22, 2025 14:50Josu San MartinJosu San MartinCPPg++13.3.0Error
Dec 22, 2025 14:49Josu San MartinJosu San MartinCPPg++13.3.0Error
Dec 22, 2025 14:49Josu San MartinJosu San MartinCPPg++13.3.0Error
Dec 22, 2025 08:46Liquidity GoblinLiquidity GoblinRUSTrust-1.92.0Success215,607
Dec 22, 2025 05:25RussellStrongRussellStrongRUSTrust-1.92.0Success378,457
Dec 22, 2025 05:24Liquidity GoblinLiquidity GoblinRUSTrust-1.92.0Success209,190
Dec 22, 2025 05:23Liquidity GoblinLiquidity GoblinRUSTrust-1.92.0Success216,986
Dec 22, 2025 05:21RussellStrongRussellStrongRUSTrust-1.92.0Success350,040+6.60 RP
Dec 22, 2025 05:20Liquidity GoblinLiquidity GoblinRUSTrust-1.92.0Success215,686
Dec 22, 2025 05:18Liquidity GoblinLiquidity GoblinRUSTrust-1.92.0Error
Dec 22, 2025 05:17Liquidity GoblinLiquidity GoblinRUSTrust-1.92.0Error
Dec 22, 2025 05:15Liquidity GoblinLiquidity GoblinRUSTrust-1.92.0Error
Dec 22, 2025 05:12Liquidity GoblinLiquidity GoblinRUSTrust-1.92.0Error
Dec 22, 2025 05:09Liquidity GoblinLiquidity GoblinRUSTrust-1.92.0Error
Dec 22, 2025 05:04Liquidity GoblinLiquidity GoblinRUSTrust-1.92.0Error
Dec 22, 2025 04:48RussellStrongRussellStrongRUSTrust-1.92.0Success455,119+17.92 RP
Dec 22, 2025 04:27Josu San MartinJosu San MartinCPPg++13.3.0Error
Dec 22, 2025 04:26Josu San MartinJosu San MartinCPPg++13.3.0Error
Dec 22, 2025 04:23Josu San MartinJosu San MartinCPPg++13.3.0Error
Dec 22, 2025 04:23Josu San MartinJosu San MartinCPPg++13.3.0Error
Dec 22, 2025 04:20Josu San MartinJosu San MartinCPPg++13.3.0Error
Dec 22, 2025 04:19Josu San MartinJosu San MartinCPPclang++18.1.3Error
Dec 22, 2025 04:19Josu San MartinJosu San MartinCPPclang++18.1.3Error
Dec 22, 2025 04:18Josu San MartinJosu San MartinCPPclang++18.1.3Error
Dec 22, 2025 04:16Josu San MartinJosu San MartinGOgo1.25.5Success71,259
Dec 22, 2025 04:15Josu San MartinJosu San MartinGOgo1.25.5Success122,857
Dec 22, 2025 04:14Josu San MartinJosu San MartinGOgo1.25.5Success123,252