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
Oct 9, 2026 08:16Karthik ReddyKarthik ReddyGOgo1.26.2Success5,694
Oct 9, 2026 08:06Karthik ReddyKarthik ReddyZIG0.15.1Success5,670
Oct 9, 2026 07:15Karthik ReddyKarthik ReddyRUSTrust-1.95.0Success5,565
Oct 6, 2026 04:35janwwwjanwwwCPPg++14.2.0Success1,302,165+7.68 RP
Oct 5, 2026 23:05Karthik ReddyKarthik ReddyCPPg++14.2.0Success5,298
Oct 5, 2026 22:51Karthik ReddyKarthik ReddyCPPg++14.2.0Success5,270
Oct 5, 2026 22:37Karthik ReddyKarthik ReddyCPPg++14.2.0Success5,227
Oct 5, 2026 22:23Karthik ReddyKarthik ReddyCPPg++14.2.0Success5,320
Oct 5, 2026 22:23Karthik ReddyKarthik ReddyCPPg++14.2.0Success5,306
Oct 5, 2026 22:22Karthik ReddyKarthik ReddyCPPg++14.2.0Success5,325
Oct 5, 2026 22:20Karthik ReddyKarthik ReddyCPPg++14.2.0Success3,208+19.38 RP
Oct 5, 2026 22:19Karthik ReddyKarthik ReddyCPPg++14.2.0Success5,734
Oct 5, 2026 22:18Karthik ReddyKarthik ReddyCPPg++14.2.0Success3,218+1'012.22 RP
Oct 5, 2026 22:18Karthik ReddyKarthik ReddyCPPg++14.2.0Success5,677
Oct 5, 2026 22:13Karthik ReddyKarthik ReddyCPPg++14.2.0Success6,108
Oct 5, 2026 22:02Karthik ReddyKarthik ReddyCPPg++14.2.0Error
Oct 5, 2026 22:02Karthik ReddyKarthik ReddyCPPg++14.2.0Error
Oct 5, 2026 22:02Karthik ReddyKarthik ReddyCPPg++14.2.0Error
Oct 5, 2026 22:02Karthik ReddyKarthik ReddyCPPg++14.2.0Error
Oct 5, 2026 22:01Karthik ReddyKarthik ReddyCPPg++14.2.0Error
Oct 5, 2026 22:00Karthik ReddyKarthik ReddyCPPg++14.2.0Success5,227
Oct 5, 2026 18:10izuretaizuretaCPPg++10.5.0Success1,280,060+7.81 RP
Oct 5, 2026 00:01Karthik ReddyKarthik ReddyCPPclang++18.1.3Error+966.82 RP
Oct 4, 2026 23:56Karthik ReddyKarthik ReddyCPPclang++18.1.3Error
Oct 4, 2026 23:53Karthik ReddyKarthik ReddyCPPg++14.2.0Error
Oct 4, 2026 23:47Karthik ReddyKarthik ReddyCPPg++14.2.0Success4,610
Oct 4, 2026 23:42Karthik ReddyKarthik ReddyCPPg++14.2.0Error
Oct 4, 2026 23:40Karthik ReddyKarthik ReddyCPPg++14.2.0Success4,520
Oct 4, 2026 23:39Karthik ReddyKarthik ReddyCPPclang++18.1.3Error+256.75 RP
Oct 4, 2026 23:31Karthik ReddyKarthik ReddyCPPclang++18.1.3Error+20.89 RP
Oct 4, 2026 23:30Karthik ReddyKarthik ReddyCPPclang++18.1.3Error+504.74 RP
Oct 4, 2026 23:27Karthik ReddyKarthik ReddyCPPclang++18.1.3Error+169.31 RP
Oct 4, 2026 23:14Karthik ReddyKarthik ReddyCPPclang++18.1.3Error+235.65 RP
Oct 4, 2026 23:09Karthik ReddyKarthik ReddyCPPclang++18.1.3Error+647.48 RP
Oct 4, 2026 20:10Karthik ReddyKarthik ReddyCPPg++14.2.0Error
Oct 4, 2026 20:09Karthik ReddyKarthik ReddyCPPg++14.2.0Error
Oct 4, 2026 20:08Karthik ReddyKarthik ReddyCPPg++14.2.0Error
Oct 4, 2026 20:05Karthik ReddyKarthik ReddyCPPg++14.2.0Error
Oct 4, 2026 20:04Karthik ReddyKarthik ReddyCPPg++14.2.0Error
Oct 4, 2026 19:49Karthik ReddyKarthik ReddyCPPg++14.2.0Error
Oct 4, 2026 15:13Karthik ReddyKarthik ReddyCPPclang++18.1.3Error+15.91 RP
Oct 4, 2026 15:08Karthik ReddyKarthik ReddyCPPclang++18.1.3Error+98.47 RP
Oct 4, 2026 15:04Karthik ReddyKarthik ReddyCPPclang++18.1.3Error
Oct 4, 2026 15:03Karthik ReddyKarthik ReddyCPPclang++18.1.3Success67,606
Oct 4, 2026 14:37Karthik ReddyKarthik ReddyCPPclang++18.1.3Error+303.55 RP
Oct 4, 2026 14:34Karthik ReddyKarthik ReddyCPPclang++18.1.3Error
Oct 4, 2026 14:25Karthik ReddyKarthik ReddyCPPclang++18.1.3Error
Oct 4, 2026 14:24Karthik ReddyKarthik ReddyCPPclang++18.1.3Error
Oct 3, 2026 07:32Karthik ReddyKarthik ReddyCPPg++14.2.0Error
Sep 30, 2026 19:50lh14576lh14576CPPg++13.3.0Success49,363+6.27 RP
Sep 26, 2026 18:48Kevin HeaveyKevin HeaveyCSHARP9.0.18Success3,591+2'595.30 RP
Sep 26, 2026 18:46Kevin HeaveyKevin HeaveyGOgo1.26.2Success3,474+1'613.50 RP
Sep 26, 2026 18:45Kevin HeaveyKevin HeaveyZIG0.15.1Success3,415+2'720.94 RP
Sep 26, 2026 18:45Kevin HeaveyKevin HeaveyRUSTrust-1.95.0Success3,358+2'389.66 RP
Sep 26, 2026 11:08Kevin HeaveyKevin HeaveyCPPg++14.2.0Success3,344+74.18 RP
Sep 26, 2026 10:59Kevin HeaveyKevin HeaveyCPPg++14.2.0Success3,386+384.93 RP
Sep 26, 2026 10:46Kevin HeaveyKevin HeaveyCPPg++14.2.0Success3,775+11.18 RP
Sep 26, 2026 10:45Kevin HeaveyKevin HeaveyCPPg++14.2.0Success3,791+164.42 RP
Sep 26, 2026 10:39Kevin HeaveyKevin HeaveyCPPg++14.2.0Success4,043+149.45 RP
Sep 26, 2026 10:22Kevin HeaveyKevin HeaveyCPPg++14.2.0Error
Sep 26, 2026 10:20Kevin HeaveyKevin HeaveyCPPg++14.2.0Success4,303+465.57 RP
Sep 26, 2026 10:05Kevin HeaveyKevin HeaveyCPPg++14.2.0Success5,381+1'858.39 RP
Sep 25, 2026 22:16Kevin HeaveyKevin HeaveyCPPg++13.3.0Error
Sep 25, 2026 22:16Kevin HeaveyKevin HeaveyCPPg++13.3.0Error
Sep 25, 2026 21:47Kevin HeaveyKevin HeaveyCPPg++13.3.0Error
Sep 25, 2026 21:40Kevin HeaveyKevin HeaveyCPPg++13.3.0Error
Sep 23, 2026 19:48Matthias GörgensMatthias GörgensCPPclang++19.1.1Error+8.75 RP
Sep 23, 2026 18:15Matthias GörgensMatthias GörgensCPPclang++19.1.1Error+25.20 RP
Sep 23, 2026 17:45lh14576lh14576CPPg++10.5.0Error+30.35 RP
Sep 23, 2026 13:38TitanTitanRUSTrust-1.95.0Success16,998+253.54 RP
Sep 23, 2026 13:34TitanTitanRUSTrust-1.95.0Success21,667+491.92 RP
Sep 23, 2026 13:20TitanTitanRUSTrust-1.95.0Success468,965
Sep 23, 2026 13:12TitanTitanRUSTrust-1.95.0Success191,977
Sep 23, 2026 12:58TitanTitanRUSTrust-1.95.0Success61,486
Sep 23, 2026 12:51TitanTitanRUSTrust-1.95.0Success59,931+66.18 RP
Sep 23, 2026 12:47TitanTitanRUSTrust-1.95.0Success99,325+72.87 RP
Sep 23, 2026 12:47lh14576lh14576CPPg++10.5.0Error+42.64 RP
Sep 23, 2026 12:15TitanTitanRUSTrust-1.95.0Success367,891
Sep 23, 2026 12:05TitanTitanRUSTrust-1.95.0Success359,591+27.81 RP
Sep 19, 2026 13:55Andrew EpsteinAndrew EpsteinCPPg++14.2.0Success400,077
Sep 19, 2026 13:28Andrew EpsteinAndrew EpsteinCPPg++14.2.0Success39,724
Sep 17, 2026 14:14Andrew EpsteinAndrew EpsteinCPPg++14.2.0Success6,217
Sep 17, 2026 14:08Andrew EpsteinAndrew EpsteinCPPg++14.2.0Success4,717
Sep 17, 2026 14:08Andrew EpsteinAndrew EpsteinCPPg++14.2.0Success4,175+2'148.08 RP
Sep 17, 2026 13:37Andrew EpsteinAndrew EpsteinCPPg++14.2.0Success40,775
Sep 17, 2026 13:35Andrew EpsteinAndrew EpsteinCPPg++14.2.0Success46,700
Sep 17, 2026 13:22Andrew EpsteinAndrew EpsteinCPPg++14.2.0Success1,504,072
Sep 17, 2026 13:04Andrew EpsteinAndrew EpsteinCPPg++14.2.0Success401,051
Sep 17, 2026 05:01Haha ExpertHaha ExpertCPPg++13.3.0Success80,179
Sep 17, 2026 05:00Haha ExpertHaha ExpertCPPg++10.5.0Success79,405+5.10 RP
Sep 16, 2026 00:20Josu San MartinJosu San MartinCPPg++13.3.0Error
Sep 15, 2026 23:33Andrew EpsteinAndrew EpsteinCPPg++14.2.0Success40,465+0.71 RP
Sep 15, 2026 23:30Andrew EpsteinAndrew EpsteinCPPg++14.2.0Success501,722
Sep 15, 2026 23:29Andrew EpsteinAndrew EpsteinCPPg++14.2.0Success40,581+4.66 RP
Sep 15, 2026 23:28Andrew EpsteinAndrew EpsteinCPPclang++20.1.2Success43,436
Sep 15, 2026 23:27Andrew EpsteinAndrew EpsteinCPPg++14.2.0Success41,363+11.87 RP
Sep 15, 2026 23:25Andrew EpsteinAndrew EpsteinCPPg++14.2.0Success45,044
Sep 15, 2026 23:23Andrew EpsteinAndrew EpsteinCPPg++14.2.0Success46,543
Sep 15, 2026 23:22Andrew EpsteinAndrew EpsteinCPPg++14.2.0Success43,498+3.08 RP
Sep 15, 2026 23:19Andrew EpsteinAndrew EpsteinCPPg++14.2.0Success64,763