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 29, 2025 00:24Tim ZhamoidinTim ZhamoidinCPPclang++18.1.3Error
Dec 29, 2025 00:22spxudispxudiCPPg++13.3.0Error
Dec 29, 2025 00:19spxudispxudiCPPg++13.3.0Error
Dec 29, 2025 00:18spxudispxudiCPPg++13.3.0Error
Dec 29, 2025 00:12Tim ZhamoidinTim ZhamoidinCPPclang++18.1.3Success88,622+9.44 RP
Dec 29, 2025 00:05Tim ZhamoidinTim ZhamoidinCPPclang++18.1.3Success109,881
Dec 29, 2025 00:03Tim ZhamoidinTim ZhamoidinCPPclang++18.1.3Error
Dec 28, 2025 23:59Tim ZhamoidinTim ZhamoidinCPPclang++18.1.3Success98,350
Dec 28, 2025 23:54spxudispxudiCPPg++13.3.0Success170,510
Dec 28, 2025 23:53Tim ZhamoidinTim ZhamoidinCPPclang++18.1.3Success153,426
Dec 28, 2025 23:50Tim ZhamoidinTim ZhamoidinCPPclang++18.1.3Success124,603
Dec 28, 2025 23:48spxudispxudiCPPg++13.3.0Success129,078+11.92 RP
Dec 28, 2025 23:46Tim ZhamoidinTim ZhamoidinCPPclang++18.1.3Success112,753
Dec 28, 2025 23:46spxudispxudiCPPg++13.3.0Error
Dec 28, 2025 23:44Tim ZhamoidinTim ZhamoidinCPPclang++18.1.3Success207,933
Dec 28, 2025 23:40Tim ZhamoidinTim ZhamoidinCPPclang++18.1.3Error
Dec 28, 2025 23:39spxudispxudiCPPg++13.3.0Success152,560+17.10 RP
Dec 28, 2025 23:36Tim ZhamoidinTim ZhamoidinCPPclang++18.1.3Success96,950
Dec 28, 2025 23:36spxudispxudiCPPg++13.3.0Success250,614
Dec 28, 2025 23:32Tim ZhamoidinTim ZhamoidinCPPclang++18.1.3Success445,372
Dec 28, 2025 23:29spxudispxudiCPPg++13.3.0Success440,495
Dec 28, 2025 23:26spxudispxudiCPPg++13.3.0Success206,393+7.61 RP
Dec 28, 2025 23:26imotw2imotw2CPPg++13.3.0Success48,874
Dec 28, 2025 23:25imotw2imotw2CPPg++13.3.0Success300,752
Dec 28, 2025 23:25imotw2imotw2CPPg++13.3.0Success104,083
Dec 28, 2025 23:25imotw2imotw2CPPg++13.3.0Success67,853
Dec 28, 2025 23:25imotw2imotw2CPPg++13.3.0Success62,952
Dec 28, 2025 23:23spxudispxudiCPPg++13.3.0Success244,836+1.92 RP
Dec 28, 2025 23:21Tim ZhamoidinTim ZhamoidinCPPclang++18.1.3Success108,822
Dec 28, 2025 23:20Tim ZhamoidinTim ZhamoidinCPPclang++18.1.3Success105,062
Dec 28, 2025 23:18spxudispxudiCPPg++13.3.0Success463,479
Dec 28, 2025 23:17Tim ZhamoidinTim ZhamoidinCPPclang++18.1.3Success103,624
Dec 28, 2025 23:11spxudispxudiCPPg++13.3.0Success462,609
Dec 28, 2025 23:08Tim ZhamoidinTim ZhamoidinCPPclang++18.1.3Error
Dec 28, 2025 23:04imotw2imotw2CPPclang++18.1.3Success51,560
Dec 28, 2025 23:03imotw2imotw2CPPg++13.3.0Success47,681
Dec 28, 2025 23:03imotw2imotw2CPPg++13.3.0Success47,647
Dec 28, 2025 23:02imotw2imotw2CPPg++13.3.0Success47,428+7.53 RP
Dec 28, 2025 23:00imotw2imotw2CPPg++13.3.0Success51,241
Dec 28, 2025 22:59spxudispxudiCPPg++13.3.0Success493,729
Dec 28, 2025 22:59imotw2imotw2CPPg++13.3.0Success50,403
Dec 28, 2025 22:59imotw2imotw2CPPg++13.3.0Success50,991
Dec 28, 2025 22:59imotw2imotw2CPPg++13.3.0Success50,143
Dec 28, 2025 22:56Tim ZhamoidinTim ZhamoidinCPPclang++18.1.3Success97,666
Dec 28, 2025 22:53spxudispxudiCPPg++13.3.0Success256,903+1.56 RP
Dec 28, 2025 22:51imotw2imotw2CPPg++13.3.0Success49,184+3.68 RP
Dec 28, 2025 22:51imotw2imotw2CPPg++13.3.0Success51,953
Dec 28, 2025 22:49spxudispxudiCPPg++13.3.0Success267,600+37.37 RP
Dec 28, 2025 22:49Tim ZhamoidinTim ZhamoidinCPPclang++18.1.3Success103,286
Dec 28, 2025 22:44Tim ZhamoidinTim ZhamoidinCPPclang++18.1.3Success96,716+5.38 RP
Dec 28, 2025 22:40Tim ZhamoidinTim ZhamoidinCPPclang++18.1.3Success104,697
Dec 28, 2025 22:34Tim ZhamoidinTim ZhamoidinCPPclang++18.1.3Success112,774
Dec 28, 2025 22:32Tim ZhamoidinTim ZhamoidinCPPclang++18.1.3Success110,740
Dec 28, 2025 22:17Tim ZhamoidinTim ZhamoidinCPPclang++18.1.3Error
Dec 28, 2025 22:06Tim ZhamoidinTim ZhamoidinCPPclang++18.1.3Error
Dec 28, 2025 22:04Tim ZhamoidinTim ZhamoidinCPPclang++18.1.3Success110,774
Dec 28, 2025 22:04Tim ZhamoidinTim ZhamoidinCPPclang++18.1.3Success110,107
Dec 28, 2025 22:01Tim ZhamoidinTim ZhamoidinCPPclang++18.1.3Success485,929
Dec 28, 2025 21:41Tim ZhamoidinTim ZhamoidinCPPclang++18.1.3Error
Dec 28, 2025 21:40Tim ZhamoidinTim ZhamoidinCPPclang++18.1.3Error
Dec 28, 2025 21:37Tim ZhamoidinTim ZhamoidinCPPclang++18.1.3Success416,717
Dec 28, 2025 21:34Tim ZhamoidinTim ZhamoidinCPPclang++18.1.3Success485,390
Dec 28, 2025 21:29Tim ZhamoidinTim ZhamoidinCPPclang++18.1.3Success418,462
Dec 28, 2025 21:29Tim ZhamoidinTim ZhamoidinCPPclang++18.1.3Success417,202
Dec 28, 2025 21:13Tim ZhamoidinTim ZhamoidinCPPclang++18.1.3Success335,841
Dec 28, 2025 21:13Tim ZhamoidinTim ZhamoidinCPPclang++18.1.3Success334,198
Dec 28, 2025 21:10Tim ZhamoidinTim ZhamoidinCPPclang++18.1.3Success404,941
Dec 28, 2025 20:41imotw2imotw2CPPg++13.3.0Success51,645
Dec 28, 2025 20:15imotw2imotw2CPPg++13.3.0Success50,091+51.65 RP
Dec 28, 2025 20:13imotw2imotw2CPPg++13.3.0Success92,972
Dec 28, 2025 19:18yenw0dyenw0dRUSTrust-1.85.1Success14,169
Dec 28, 2025 19:17yenw0dyenw0dRUSTrust-1.85.1Error
Dec 28, 2025 19:07Josu San MartinJosu San MartinGOgo1.25.5Error
Dec 28, 2025 19:06yenw0dyenw0dRUSTrust-1.85.1Error
Dec 28, 2025 19:06Josu San MartinJosu San MartinGOgo1.25.5Success12,662+23.66 RP
Dec 28, 2025 19:05yenw0dyenw0dRUSTrust-1.85.1Success12,314+213.21 RP
Dec 28, 2025 19:05Josu San MartinJosu San MartinGOgo1.25.5Success13,053+10.88 RP
Dec 28, 2025 19:04Josu San MartinJosu San MartinGOgo1.25.5Success13,241+130.89 RP
Dec 28, 2025 19:03Josu San MartinJosu San MartinGOgo1.25.5Success16,017+427.84 RP
Dec 28, 2025 18:59Josu San MartinJosu San MartinGOgo1.25.5Success53,547
Dec 28, 2025 18:43Josu San MartinJosu San MartinZIG0.14.0Success10,236+165.65 RP
Dec 28, 2025 18:42Josu San MartinJosu San MartinZIG0.14.0Success12,326+249.81 RP
Dec 28, 2025 18:41Josu San MartinJosu San MartinZIG0.14.0Success17,810+465.37 RP
Dec 28, 2025 18:35Josu San MartinJosu San MartinCPPg++13.3.0Error
Dec 28, 2025 18:34Josu San MartinJosu San MartinCPPg++13.3.0Success5,862+34.50 RP
Dec 28, 2025 18:27Josu San MartinJosu San MartinZIG0.14.0Success118,803
Dec 28, 2025 18:27imotw2imotw2CPPg++13.3.0Success67,572+15.84 RP
Dec 28, 2025 18:27imotw2imotw2CPPg++13.3.0Success143,036
Dec 28, 2025 18:25Josu San MartinJosu San MartinRUSTrust-1.92.0Success7,541
Dec 28, 2025 18:24Josu San MartinJosu San MartinRUSTrust-1.92.0Success8,460
Dec 28, 2025 18:24Josu San MartinJosu San MartinRUSTrust-1.92.0Error
Dec 28, 2025 18:23Josu San MartinJosu San MartinRUSTrust-1.92.0Success5,983+378.96 RP
Dec 28, 2025 18:22Josu San MartinJosu San MartinRUSTrust-1.92.0Success6,748+883.05 RP
Dec 28, 2025 18:22HattonuriHattonuriCPPclang++18.1.3Success26,328+6.69 RP
Dec 28, 2025 18:20imotw2imotw2CPPg++13.3.0Error
Dec 28, 2025 18:18Josu San MartinJosu San MartinCPPg++13.3.0Success6,748+170.27 RP
Dec 28, 2025 18:18Josu San MartinJosu San MartinCPPclang++18.1.3Success7,624+135.45 RP
Dec 28, 2025 18:18imotw2imotw2CPPg++13.3.0Error
Dec 28, 2025 18:17Josu San MartinJosu San MartinCPPg++13.3.0Error
Dec 28, 2025 18:11imotw2imotw2CPPg++13.3.0Success75,671+21.89 RP