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 14, 2025 21:52HattonuriHattonuriCPPg++13.3.0Success72,274
Dec 14, 2025 21:50HattonuriHattonuriCPPg++13.3.0Success69,034+25.68 RP
Dec 14, 2025 21:44HattonuriHattonuriCPPg++13.3.0Error
Dec 14, 2025 21:42HattonuriHattonuriCPPg++13.3.0Error
Dec 14, 2025 21:18HattonuriHattonuriCPPg++13.3.0Success83,909+5.71 RP
Dec 14, 2025 21:11HattonuriHattonuriCPPg++13.3.0Success92,431
Dec 14, 2025 20:59HattonuriHattonuriCPPg++13.3.0Success88,131+1.72 RP
Dec 14, 2025 20:58HattonuriHattonuriCPPg++13.3.0Success89,484+38.08 RP
Dec 14, 2025 20:50HattonuriHattonuriCPPg++13.3.0Error
Dec 14, 2025 20:43HattonuriHattonuriCPPg++13.3.0Success135,734+2.80 RP
Dec 14, 2025 20:40HattonuriHattonuriCPPg++13.3.0Success146,757
Dec 14, 2025 20:29HattonuriHattonuriCPPg++13.3.0Success151,507
Dec 14, 2025 20:22HattonuriHattonuriCPPg++13.3.0Success145,967
Dec 14, 2025 20:15HattonuriHattonuriCPPg++13.3.0Success141,691
Dec 14, 2025 19:58HattonuriHattonuriCPPg++13.3.0Success156,353
Dec 14, 2025 19:58HattonuriHattonuriCPPg++13.3.0Error
Dec 14, 2025 19:14HattonuriHattonuriCPPg++13.3.0Success145,552
Dec 14, 2025 18:44HattonuriHattonuriCPPg++13.3.0Success141,091+0.88 RP
Dec 14, 2025 18:44HattonuriHattonuriCPPg++13.3.0Success142,855+2.34 RP
Dec 14, 2025 18:43HattonuriHattonuriCPPg++13.3.0Success153,298
Dec 14, 2025 18:42HattonuriHattonuriCPPg++13.3.0Success154,941
Dec 14, 2025 18:41HattonuriHattonuriCPPg++13.3.0Success152,129
Dec 14, 2025 18:31HattonuriHattonuriCPPg++13.3.0Success147,798+4.62 RP
Dec 14, 2025 18:20HattonuriHattonuriCPPg++13.3.0Success158,634+1.72 RP
Dec 14, 2025 18:19HattonuriHattonuriCPPg++13.3.0Success164,483
Dec 14, 2025 18:18HattonuriHattonuriCPPg++13.3.0Error
Dec 14, 2025 18:06HattonuriHattonuriCPPg++13.3.0Error
Dec 14, 2025 18:02HattonuriHattonuriCPPg++13.3.0Success163,090+0.61 RP
Dec 14, 2025 18:00HattonuriHattonuriCPPg++13.3.0Success164,717+45.73 RP
Dec 14, 2025 16:46HattonuriHattonuriCPPg++13.3.0Success698,029
Dec 14, 2025 15:30HattonuriHattonuriCPPg++13.3.0Success667,650+0.14 RP
Dec 14, 2025 14:53HattonuriHattonuriCPPg++13.3.0Success674,141+0.06 RP
Dec 14, 2025 14:47HattonuriHattonuriCPPg++13.3.0Success676,805+2.85 RP
Dec 14, 2025 14:30HattonuriHattonuriCPPg++13.3.0Error
Dec 14, 2025 14:15HattonuriHattonuriCPPg++13.3.0Success838,441+4.23 RP
Dec 14, 2025 14:15HattonuriHattonuriCPPg++13.3.0Success1,298,934+7.70 RP
Dec 11, 2025 14:37Weitao WanWeitao WanCPPclang++18.1.3Success91,400
Dec 11, 2025 14:28Weitao WanWeitao WanCPPg++13.3.0Success85,333
Dec 9, 2025 19:50hey-researcherhey-researcherRUSTrust-1.91.1Error
Dec 9, 2025 19:17hey-researcherhey-researcherRUSTrust-1.91.1Error
Dec 9, 2025 18:49hey-researcherhey-researcherCPPg++13.3.0Success1,296,905+7.71 RP
Dec 8, 2025 17:16Weitao WanWeitao WanCPPg++13.3.0Success79,505+8.53 RP
Dec 8, 2025 09:19p-rup-ruCPPclang++18.1.3Success140,553+56.58 RP
Dec 8, 2025 07:29p-rup-ruCPPclang++18.1.3Success686,595+0.03 RP
Dec 8, 2025 07:28p-rup-ruCPPclang++18.1.3Success688,229+2.62 RP
Dec 7, 2025 17:21Weitao WanWeitao WanCPPg++13.3.0Success85,286+1.14 RP
Dec 7, 2025 17:20Weitao WanWeitao WanCPPg++13.3.0Success92,434
Dec 7, 2025 16:57Weitao WanWeitao WanCPPg++13.3.0Success102,612
Dec 7, 2025 16:52Weitao WanWeitao WanCPPg++13.3.0Success473,722
Dec 7, 2025 15:54Weitao WanWeitao WanCPPg++13.3.0Success86,122+11.07 RP
Dec 7, 2025 15:52Weitao WanWeitao WanCPPg++13.3.0Error
Dec 7, 2025 15:22Weitao WanWeitao WanCPPg++13.3.0Success97,181
Dec 7, 2025 15:22Weitao WanWeitao WanCPPg++13.3.0Success95,197+1.23 RP
Dec 7, 2025 15:15Weitao WanWeitao WanCPPg++13.3.0Success96,328+89.78 RP
Dec 7, 2025 14:57Weitao WanWeitao WanCPPg++13.3.0Success712,545+6.21 RP
Dec 7, 2025 14:54Weitao WanWeitao WanCPPg++13.3.0Error
Dec 7, 2025 14:41Weitao WanWeitao WanCPPg++13.3.0Success1,278,772+7.82 RP
Dec 6, 2025 08:42p-rup-ruCPPclang++18.1.3Success846,384
Dec 6, 2025 08:28p-rup-ruCPPg++13.3.0Success848,253
Dec 6, 2025 08:27p-rup-ruCPPg++13.3.0Success839,733+4.13 RP
Dec 6, 2025 07:02p-rup-ruCPPg++13.3.0Success1,284,871+0.04 RP
Dec 6, 2025 06:59p-rup-ruCPPg++13.3.0Success1,292,140+7.74 RP
Dec 2, 2025 13:19izotoffizotoffGOgo1.18Success170,464
Dec 2, 2025 12:45izotoffizotoffGOgo1.25.4Success137,993+63.65 RP
Nov 14, 2025 14:56izotoffizotoffGOgo1.25.4Success1,134,262+0.94 RP
Nov 14, 2025 14:28izotoffizotoffGOgo1.25.4Success1,270,097+7.87 RP
Oct 29, 2025 13:38CadovvlCadovvlCPPg++13.3.0Success60,631+0.56 RP
Oct 20, 2025 21:26benj252benj252RUSTrust-1.90.0Error
Oct 20, 2025 21:23benj252benj252RUSTrust-1.90.0Error
Oct 18, 2025 11:57korey-skorey-sRUSTrust-1.90.0Success83,338
Oct 18, 2025 11:56korey-skorey-sRUSTrust-1.90.0Success83,372
Oct 18, 2025 11:50korey-skorey-sRUSTrust-1.90.0Error
Oct 18, 2025 11:39korey-skorey-sRUSTrust-1.90.0Error
Oct 18, 2025 11:36korey-skorey-sRUSTrust-1.90.0Success84,633
Oct 15, 2025 22:21korey-skorey-sRUSTrust-1.90.0Success85,557
Oct 15, 2025 17:32Priyanshu GuptaPriyanshu GuptaCPPg++13.3.0Success1,298,410+7.70 RP
Oct 4, 2025 12:20parastromparastromRUSTrust-1.90.0Error
Oct 4, 2025 12:16parastromparastromRUSTrust-1.90.0Error
Oct 4, 2025 12:12parastromparastromRUSTrust-1.90.0Error
Oct 4, 2025 12:10parastromparastromRUSTrust-1.90.0Success104,710
Oct 4, 2025 12:05parastromparastromRUSTrust-1.90.0Error
Oct 4, 2025 11:42parastromparastromRUSTrust-1.90.0Error
Oct 4, 2025 11:39parastromparastromRUSTrust-1.90.0Error
Oct 4, 2025 11:35parastromparastromRUSTrust-1.90.0Error
Oct 4, 2025 11:17parastromparastromRUSTrust-1.90.0Success98,064
Oct 4, 2025 11:11parastromparastromRUSTrust-1.90.0Success105,921
Oct 4, 2025 10:34parastromparastromRUSTrust-1.90.0Success116,188
Oct 4, 2025 10:33parastromparastromRUSTrust-1.90.0Success115,414
Sep 30, 2025 16:40Wookyung JeongWookyung JeongCPPg++13.3.0Success51,541+1.89 RP
Sep 30, 2025 16:36Wookyung JeongWookyung JeongCPPg++13.3.0Success52,047+5.36 RP
Sep 30, 2025 16:25Wookyung JeongWookyung JeongCPPg++13.3.0Success53,541+3.59 RP
Sep 30, 2025 16:24Wookyung JeongWookyung JeongCPPg++13.3.0Success54,590+1.22 RP
Sep 30, 2025 16:21Wookyung JeongWookyung JeongCPPg++13.3.0Success55,412
Sep 30, 2025 16:09Wookyung JeongWookyung JeongCPPg++13.3.0Success54,995
Sep 30, 2025 15:19Wookyung JeongWookyung JeongCPPg++13.3.0Success57,553
Sep 30, 2025 15:01Wookyung JeongWookyung JeongCPPg++13.3.0Success58,393
Sep 30, 2025 14:28Wookyung JeongWookyung JeongCPPg++13.3.0Success55,772
Sep 30, 2025 09:58Jin KimJin KimCPPg++13.3.0Success323,047+3.66 RP
Sep 30, 2025 09:55Jin KimJin KimCPPg++13.3.0Success366,393+0.88 RP
Sep 30, 2025 09:51Jin KimJin KimCPPg++13.3.0Success378,548+18.69 RP