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 21, 2025 04:41Josu San MartinJosu San MartinCPPg++13.3.0Success49,126
Dec 21, 2025 04:37Josu San MartinJosu San MartinCPPg++13.3.0Error
Dec 21, 2025 04:36Josu San MartinJosu San MartinCPPg++13.3.0Error
Dec 21, 2025 04:28Josu San MartinJosu San MartinCPPg++13.3.0Error
Dec 21, 2025 04:27Josu San MartinJosu San MartinCPPg++13.3.0Error
Dec 21, 2025 04:27Josu San MartinJosu San MartinCPPg++13.3.0Error
Dec 21, 2025 04:25Josu San MartinJosu San MartinCPPg++13.3.0Error
Dec 21, 2025 04:25Josu San MartinJosu San MartinCPPg++13.3.0Error
Dec 21, 2025 04:23Josu San MartinJosu San MartinCPPg++13.3.0Error
Dec 21, 2025 04:18Josu San MartinJosu San MartinCPPg++13.3.0Error
Dec 21, 2025 04:14Josu San MartinJosu San MartinCPPg++13.3.0Error
Dec 21, 2025 04:13Josu San MartinJosu San MartinCPPg++13.3.0Error
Dec 21, 2025 04:13Josu San MartinJosu San MartinCPPg++13.3.0Error
Dec 21, 2025 04:12Josu San MartinJosu San MartinCPPg++13.3.0Error
Dec 21, 2025 04:12Josu San MartinJosu San MartinCPPg++13.3.0Error
Dec 21, 2025 04:10Josu San MartinJosu San MartinCPPg++13.3.0Error
Dec 21, 2025 04:09Josu San MartinJosu San MartinCPPg++13.3.0Error
Dec 21, 2025 04:08Josu San MartinJosu San MartinCPPg++13.3.0Error
Dec 21, 2025 04:07Josu San MartinJosu San MartinCPPg++13.3.0Error
Dec 21, 2025 04:06Josu San MartinJosu San MartinCPPg++13.3.0Error
Dec 21, 2025 04:04Josu San MartinJosu San MartinCPPg++13.3.0Success49,824
Dec 21, 2025 04:04Josu San MartinJosu San MartinCPPg++13.3.0Error
Dec 21, 2025 04:02Josu San MartinJosu San MartinCPPg++13.3.0Success46,348
Dec 21, 2025 03:58Josu San MartinJosu San MartinRUSTrust-1.92.0Error
Dec 21, 2025 03:57Josu San MartinJosu San MartinRUSTrust-1.92.0Error
Dec 21, 2025 03:56Josu San MartinJosu San MartinRUSTrust-1.92.0Error
Dec 21, 2025 03:53Josu San MartinJosu San MartinCPPg++13.3.0Error
Dec 21, 2025 03:52Josu San MartinJosu San MartinCPPg++13.3.0Error
Dec 21, 2025 03:52Josu San MartinJosu San MartinCPPg++13.3.0Error
Dec 21, 2025 03:50Josu San MartinJosu San MartinCPPg++13.3.0Error
Dec 21, 2025 03:50Josu San MartinJosu San MartinCPPg++13.3.0Error
Dec 21, 2025 03:45Josu San MartinJosu San MartinRUSTrust-1.92.0Error
Dec 21, 2025 03:39Josu San MartinJosu San MartinCPPg++13.3.0Error
Dec 21, 2025 03:39Josu San MartinJosu San MartinCPPg++13.3.0Success58,903
Dec 21, 2025 03:38Josu San MartinJosu San MartinCPPg++13.3.0Error
Dec 21, 2025 03:38Josu San MartinJosu San MartinCPPg++13.3.0Error
Dec 21, 2025 03:36Josu San MartinJosu San MartinCPPg++13.3.0Error
Dec 21, 2025 03:36Josu San MartinJosu San MartinCPPg++13.3.0Error
Dec 21, 2025 03:35Josu San MartinJosu San MartinCPPg++13.3.0Error
Dec 21, 2025 03:34Josu San MartinJosu San MartinCPPg++13.3.0Error
Dec 21, 2025 03:33Josu San MartinJosu San MartinCPPg++13.3.0Success78,257
Dec 21, 2025 03:12Josu San MartinJosu San MartinCPPg++13.3.0Error
Dec 21, 2025 03:11Josu San MartinJosu San MartinCPPg++13.3.0Error
Dec 21, 2025 03:11Josu San MartinJosu San MartinCPPg++13.3.0Error
Dec 21, 2025 03:02HattonuriHattonuriCPPg++13.3.0Error+3.21 RP
Dec 21, 2025 02:38HattonuriHattonuriCPPg++13.3.0Error
Dec 21, 2025 02:25HattonuriHattonuriCPPg++13.3.0Error+0.09 RP
Dec 21, 2025 02:20HattonuriHattonuriCPPg++13.3.0Error+15.14 RP
Dec 21, 2025 02:04HattonuriHattonuriCPPg++13.3.0Error+1.79 RP
Dec 21, 2025 02:02HattonuriHattonuriCPPg++13.3.0Error
Dec 21, 2025 01:59HattonuriHattonuriCPPg++13.3.0Error+0.41 RP
Dec 21, 2025 01:57HattonuriHattonuriCPPg++13.3.0Error
Dec 21, 2025 01:56HattonuriHattonuriCPPg++13.3.0Error
Dec 21, 2025 01:55HattonuriHattonuriCPPg++13.3.0Error
Dec 21, 2025 01:45Josu San MartinJosu San MartinCPPg++13.3.0Error
Dec 21, 2025 01:43Josu San MartinJosu San MartinCPPg++13.3.0Error
Dec 21, 2025 01:43Josu San MartinJosu San MartinCPPg++13.3.0Error
Dec 21, 2025 01:43Josu San MartinJosu San MartinCPPg++13.3.0Error
Dec 21, 2025 01:43Josu San MartinJosu San MartinCPPg++13.3.0Error
Dec 21, 2025 01:40HattonuriHattonuriCPPg++13.3.0Error
Dec 21, 2025 01:38HattonuriHattonuriCPPg++13.3.0Error+4.01 RP
Dec 21, 2025 00:11Josu San MartinJosu San MartinCPPg++13.3.0Error
Dec 21, 2025 00:11Josu San MartinJosu San MartinCPPg++13.3.0Error
Dec 21, 2025 00:10Josu San MartinJosu San MartinCPPg++13.3.0Error
Dec 21, 2025 00:08Josu San MartinJosu San MartinCPPg++13.3.0Error
Dec 21, 2025 00:08Josu San MartinJosu San MartinCPPg++13.3.0Error+0.28 RP
Dec 21, 2025 00:08Josu San MartinJosu San MartinCPPg++13.3.0Error
Dec 21, 2025 00:08Josu San MartinJosu San MartinCPPg++13.3.0Error
Dec 21, 2025 00:08Josu San MartinJosu San MartinCPPg++13.3.0Error
Dec 21, 2025 00:07Josu San MartinJosu San MartinCPPg++13.3.0Error
Dec 21, 2025 00:07Josu San MartinJosu San MartinCPPg++13.3.0Error
Dec 21, 2025 00:07Josu San MartinJosu San MartinRUSTrust-1.92.0Error
Dec 21, 2025 00:05Josu San MartinJosu San MartinRUSTrust-1.92.0Success287,119
Dec 21, 2025 00:04Josu San MartinJosu San MartinRUSTrust-1.92.0Success289,366
Dec 21, 2025 00:02Josu San MartinJosu San MartinCPPg++13.3.0Error+2.99 RP
Dec 21, 2025 00:02Josu San MartinJosu San MartinCPPg++13.3.0Error
Dec 21, 2025 00:02Josu San MartinJosu San MartinCPPg++13.3.0Error+0.73 RP
Dec 21, 2025 00:01Josu San MartinJosu San MartinCPPg++13.3.0Success62,895
Dec 21, 2025 00:00Josu San MartinJosu San MartinCPPclang++18.1.3Error
Dec 20, 2025 23:58Josu San MartinJosu San MartinCPPg++13.3.0Error+1.85 RP
Dec 20, 2025 23:58Josu San MartinJosu San MartinCPPg++13.3.0Success93,909
Dec 20, 2025 23:57Josu San MartinJosu San MartinCPPg++13.3.0Error+0.31 RP
Dec 20, 2025 23:05HattonuriHattonuriCPPg++13.3.0Error
Dec 20, 2025 23:03HattonuriHattonuriCPPg++13.3.0Error
Dec 20, 2025 22:58HattonuriHattonuriCPPg++13.3.0Error
Dec 20, 2025 22:47HattonuriHattonuriCPPg++13.3.0Error
Dec 20, 2025 22:47HattonuriHattonuriCPPg++13.3.0Error
Dec 20, 2025 22:44Josu San MartinJosu San MartinCPPg++13.3.0Error
Dec 20, 2025 22:43Josu San MartinJosu San MartinCPPg++13.3.0Success81,945
Dec 20, 2025 22:43Josu San MartinJosu San MartinCPPg++13.3.0Error
Dec 20, 2025 22:43Josu San MartinJosu San MartinCPPg++13.3.0Error
Dec 20, 2025 22:38Josu San MartinJosu San MartinCPPg++13.3.0Success115,560
Dec 20, 2025 22:38Josu San MartinJosu San MartinCPPg++13.3.0Success71,876
Dec 20, 2025 22:38Josu San MartinJosu San MartinCPPg++13.3.0Success60,278
Dec 20, 2025 22:28HattonuriHattonuriCPPg++13.3.0Error
Dec 20, 2025 22:22Josu San MartinJosu San MartinCPPg++13.3.0Error
Dec 20, 2025 22:22Josu San MartinJosu San MartinCPPg++13.3.0Error
Dec 20, 2025 22:12Josu San MartinJosu San MartinCPPg++13.3.0Error
Dec 20, 2025 22:11Josu San MartinJosu San MartinCPPg++13.3.0Error
Dec 20, 2025 22:04HattonuriHattonuriCPPg++13.3.0Error