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 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.0Error+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.0Error+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
Dec 22, 2025 04:13Josu San MartinJosu San MartinCPPg++13.3.0Success56,234
Dec 22, 2025 04:12Josu San MartinJosu San MartinCPPg++13.3.0Success57,340
Dec 22, 2025 04:11Josu San MartinJosu San MartinRUSTrust-1.92.0Error
Dec 22, 2025 04:11Josu San MartinJosu San MartinRUSTrust-1.92.0Error
Dec 22, 2025 04:11Josu San MartinJosu San MartinRUSTrust-1.92.0Error
Dec 22, 2025 04:09Josu San MartinJosu San MartinCPPg++13.3.0Error
Dec 22, 2025 04:08Josu San MartinJosu San MartinCPPg++13.3.0Error
Dec 22, 2025 04:08Josu San MartinJosu San MartinCPPg++13.3.0Error
Dec 22, 2025 04:08Josu San MartinJosu San MartinCPPg++13.3.0Error
Dec 22, 2025 04:04Josu San MartinJosu San MartinCPPg++13.3.0Success111,021
Dec 22, 2025 04:04Josu San MartinJosu San MartinCPPg++13.3.0Success99,931
Dec 22, 2025 04:04Josu San MartinJosu San MartinCPPg++13.3.0Success312,055
Dec 22, 2025 04:03Josu San MartinJosu San MartinCPPg++13.3.0Success90,010
Dec 22, 2025 04:03Josu San MartinJosu San MartinCPPg++13.3.0Success90,283
Dec 22, 2025 04:03RussellStrongRussellStrongRUSTrust-1.92.0Success2,469,883+4.05 RP
Dec 22, 2025 03:06Josu San MartinJosu San MartinCPPg++13.3.0Error
Dec 22, 2025 03:06Josu San MartinJosu San MartinCPPg++13.3.0Error
Dec 22, 2025 03:05Josu San MartinJosu San MartinCPPg++13.3.0Error
Dec 22, 2025 02:51Josu San MartinJosu San MartinRUSTrust-1.92.0Success51,914
Dec 22, 2025 02:39Josu San MartinJosu San MartinRUSTrust-1.92.0Error
Dec 22, 2025 02:30Josu San MartinJosu San MartinCPPg++13.3.0Error
Dec 22, 2025 01:56Josu San MartinJosu San MartinRUSTrust-1.92.0Success52,440
Dec 22, 2025 01:54Josu San MartinJosu San MartinCPPg++13.3.0Error
Dec 22, 2025 01:54Josu San MartinJosu San MartinCPPg++13.3.0Error
Dec 22, 2025 01:54Josu San MartinJosu San MartinCPPg++13.3.0Error
Dec 22, 2025 01:51Josu San MartinJosu San MartinRUSTrust-1.92.0Error
Dec 22, 2025 01:50Josu San MartinJosu San MartinRUSTrust-1.92.0Error
Dec 22, 2025 01:47Josu San MartinJosu San MartinCPPg++13.3.0Error
Dec 22, 2025 01:46Josu San MartinJosu San MartinCPPg++13.3.0Error+0.09 RP
Dec 22, 2025 01:46Josu San MartinJosu San MartinCPPg++13.3.0Error
Dec 22, 2025 01:45Josu San MartinJosu San MartinRUSTrust-1.92.0Error
Dec 22, 2025 01:41Josu San MartinJosu San MartinRUSTrust-1.92.0Error
Dec 22, 2025 01:40Josu San MartinJosu San MartinRUSTrust-1.92.0Error
Dec 22, 2025 01:40Josu San MartinJosu San MartinCPPg++13.3.0Error
Dec 22, 2025 01:40Josu San MartinJosu San MartinCPPg++13.3.0Error
Dec 22, 2025 01:40Josu San MartinJosu San MartinCPPg++13.3.0Error
Dec 22, 2025 01:38Josu San MartinJosu San MartinRUSTrust-1.92.0Success47,519
Dec 22, 2025 01:37Josu San MartinJosu San MartinRUSTrust-1.92.0Success49,216
Dec 22, 2025 01:37Josu San MartinJosu San MartinRUSTrust-1.92.0Error
Dec 22, 2025 00:31HattonuriHattonuriCPPg++13.3.0Error+0.99 RP
Dec 22, 2025 00:27HattonuriHattonuriCPPg++13.3.0Error
Dec 22, 2025 00:10HattonuriHattonuriCPPg++13.3.0Error
Dec 21, 2025 23:53HattonuriHattonuriCPPg++13.3.0Error
Dec 21, 2025 23:49HattonuriHattonuriCPPg++13.3.0Error
Dec 21, 2025 23:08HattonuriHattonuriCPPg++13.3.0Error+11.25 RP
Dec 21, 2025 21:22Aleksandr KrotovAleksandr KrotovCPPg++13.3.0Success1,285,360+0.06 RP
Dec 21, 2025 21:22Aleksandr KrotovAleksandr KrotovCPPg++13.3.0Success1,295,431+7.72 RP
Dec 21, 2025 20:34Liquidity GoblinLiquidity GoblinRUSTrust-1.92.0Error
Dec 21, 2025 20:31Liquidity GoblinLiquidity GoblinRUSTrust-1.92.0Error
Dec 21, 2025 20:28Liquidity GoblinLiquidity GoblinRUSTrust-1.92.0Error