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 30, 2025 22:38Aniruddha DebAniruddha DebCPPg++13.3.0Error
Dec 30, 2025 22:37yenw0dyenw0dRUSTrust-1.85.1Success50,928
Dec 30, 2025 22:36yenw0dyenw0dRUSTrust-1.85.1Error
Dec 30, 2025 22:36yenw0dyenw0dRUSTrust-1.85.1Success50,516
Dec 30, 2025 22:33yenw0dyenw0dRUSTrust-1.85.1Success52,357
Dec 30, 2025 22:33yenw0dyenw0dRUSTrust-1.85.1Success52,745
Dec 30, 2025 22:32yenw0dyenw0dRUSTrust-1.85.1Error
Dec 30, 2025 21:57yenw0dyenw0dRUSTrust-1.85.1Error
Dec 30, 2025 21:53yenw0dyenw0dRUSTrust-1.85.1Error
Dec 30, 2025 21:53yenw0dyenw0dRUSTrust-1.85.1Error
Dec 30, 2025 21:09yenw0dyenw0dRUSTrust-1.85.1Error
Dec 30, 2025 20:29Josu San MartinJosu San MartinRUSTrust-1.92.0Error
Dec 30, 2025 20:11DaríoDaríoRUSTrust-1.92.0Success132,948+0.24 RP
Dec 30, 2025 19:35DaríoDaríoRUSTrust-1.92.0Success133,388
Dec 30, 2025 19:34DaríoDaríoRUSTrust-1.92.0Error
Dec 30, 2025 19:32DaríoDaríoRUSTrust-1.92.0Success133,374+0.20 RP
Dec 30, 2025 19:31DaríoDaríoRUSTrust-1.92.0Success134,469
Dec 30, 2025 19:20DaríoDaríoRUSTrust-1.92.0Success133,731+0.07 RP
Dec 30, 2025 19:18DaríoDaríoRUSTrust-1.92.0Success133,860+7.81 RP
Dec 30, 2025 18:23DaríoDaríoRUSTrust-1.92.0Success154,134
Dec 30, 2025 18:23DaríoDaríoRUSTrust-1.92.0Error
Dec 30, 2025 18:22DaríoDaríoRUSTrust-1.92.0Error
Dec 30, 2025 18:22DaríoDaríoRUSTrust-1.92.0Success150,402
Dec 30, 2025 15:51DaríoDaríoRUSTrust-1.92.0Success153,362
Dec 30, 2025 15:50DaríoDaríoRUSTrust-1.92.0Error
Dec 30, 2025 15:49DaríoDaríoRUSTrust-1.92.0Success204,245
Dec 30, 2025 15:49DaríoDaríoRUSTrust-1.92.0Success204,000
Dec 30, 2025 15:48DaríoDaríoRUSTrust-1.92.0Success204,436
Dec 30, 2025 15:48DaríoDaríoRUSTrust-1.92.0Error
Dec 30, 2025 15:45DaríoDaríoRUSTrust-1.92.0Success154,198
Dec 30, 2025 15:42DaríoDaríoRUSTrust-1.92.0Success156,300
Dec 30, 2025 15:23DaríoDaríoRUSTrust-1.92.0Success162,857
Dec 30, 2025 15:23DaríoDaríoRUSTrust-1.92.0Success149,498+5.61 RP
Dec 30, 2025 15:22DaríoDaríoRUSTrust-1.92.0Success163,178+19.17 RP
Dec 30, 2025 15:20DaríoDaríoRUSTrust-1.92.0Error
Dec 30, 2025 14:36DaríoDaríoRUSTrust-1.92.0Success237,455+2.62 RP
Dec 30, 2025 14:28DaríoDaríoRUSTrust-1.92.0Error
Dec 30, 2025 14:28DaríoDaríoRUSTrust-1.92.0Success253,219+8.11 RP
Dec 30, 2025 14:27DaríoDaríoRUSTrust-1.92.0Success334,031
Dec 30, 2025 14:27DaríoDaríoRUSTrust-1.92.0Success324,897
Dec 30, 2025 14:26DaríoDaríoRUSTrust-1.92.0Success322,800
Dec 30, 2025 14:24DaríoDaríoRUSTrust-1.92.0Success322,983
Dec 30, 2025 14:23DaríoDaríoRUSTrust-1.92.0Success318,671+31.38 RP
Dec 30, 2025 14:13DaríoDaríoRUSTrust-1.92.0Error
Dec 30, 2025 05:58Liquidity GoblinLiquidity GoblinRUSTrust-1.92.0Error
Dec 30, 2025 05:49Liquidity GoblinLiquidity GoblinRUSTrust-1.92.0Error
Dec 30, 2025 05:47Liquidity GoblinLiquidity GoblinRUSTrust-1.92.0Error
Dec 30, 2025 05:45Liquidity GoblinLiquidity GoblinRUSTrust-1.92.0Success119,616
Dec 30, 2025 05:40Liquidity GoblinLiquidity GoblinRUSTrust-1.92.0Success113,876
Dec 30, 2025 05:35Liquidity GoblinLiquidity GoblinRUSTrust-1.92.0Success124,605
Dec 30, 2025 03:53Liquidity GoblinLiquidity GoblinRUSTrust-1.92.0Error
Dec 30, 2025 01:54spxudispxudiCPPg++13.3.0Error
Dec 30, 2025 01:50spxudispxudiCPPg++13.3.0Error
Dec 30, 2025 01:39spxudispxudiCPPg++13.3.0Success104,950
Dec 30, 2025 01:28spxudispxudiCPPg++13.3.0Success117,355
Dec 30, 2025 01:03spxudispxudiCPPg++13.3.0Success132,105
Dec 30, 2025 00:50spxudispxudiCPPg++13.3.0Success105,295
Dec 30, 2025 00:47spxudispxudiCPPg++13.3.0Success111,398
Dec 30, 2025 00:45spxudispxudiCPPg++13.3.0Error
Dec 30, 2025 00:42spxudispxudiCPPg++13.3.0Success110,876
Dec 30, 2025 00:41spxudispxudiCPPg++13.3.0Success107,476
Dec 30, 2025 00:40spxudispxudiCPPg++13.3.0Success145,209
Dec 30, 2025 00:39spxudispxudiCPPg++13.3.0Success116,545
Dec 30, 2025 00:38spxudispxudiCPPg++13.3.0Error
Dec 30, 2025 00:38spxudispxudiCPPg++13.3.0Success111,269
Dec 30, 2025 00:37spxudispxudiCPPg++13.3.0Error
Dec 30, 2025 00:37spxudispxudiCPPg++13.3.0Success107,412
Dec 30, 2025 00:35spxudispxudiCPPg++13.3.0Success101,953
Dec 30, 2025 00:34spxudispxudiCPPg++13.3.0Success143,110
Dec 30, 2025 00:34spxudispxudiCPPg++13.3.0Error
Dec 30, 2025 00:32spxudispxudiCPPg++13.3.0Error
Dec 30, 2025 00:29spxudispxudiCPPg++13.3.0Success181,512
Dec 30, 2025 00:27spxudispxudiCPPg++13.3.0Error
Dec 30, 2025 00:24spxudispxudiCPPg++13.3.0Success123,679
Dec 30, 2025 00:23spxudispxudiCPPg++13.3.0Error
Dec 30, 2025 00:20spxudispxudiCPPg++13.3.0Success113,016
Dec 30, 2025 00:16spxudispxudiCPPg++13.3.0Success161,221
Dec 30, 2025 00:08spxudispxudiCPPg++13.3.0Success121,541
Dec 29, 2025 23:44Aniruddha DebAniruddha DebCPPg++13.3.0Success9,467
Dec 29, 2025 23:43Aniruddha DebAniruddha DebCPPg++13.3.0Success9,366
Dec 29, 2025 23:42Aniruddha DebAniruddha DebCPPclang++18.1.3Success10,234
Dec 29, 2025 23:42Aniruddha DebAniruddha DebCPPclang++18.1.3Success11,086
Dec 29, 2025 23:41Aniruddha DebAniruddha DebCPPclang++18.1.3Error
Dec 29, 2025 23:40Aniruddha DebAniruddha DebCPPg++13.3.0Success10,469
Dec 29, 2025 23:35Aniruddha DebAniruddha DebCPPg++13.3.0Success10,769
Dec 29, 2025 23:32Aniruddha DebAniruddha DebCPPg++13.3.0Success11,176
Dec 29, 2025 23:31Aniruddha DebAniruddha DebCPPg++13.3.0Success30,964
Dec 29, 2025 23:12Aniruddha DebAniruddha DebCPPg++13.3.0Error
Dec 29, 2025 22:56Aniruddha DebAniruddha DebCPPg++13.3.0Error
Dec 29, 2025 22:55Aniruddha DebAniruddha DebCPPg++13.3.0Error
Dec 29, 2025 22:53Aniruddha DebAniruddha DebCPPg++13.3.0Error
Dec 29, 2025 22:52Aniruddha DebAniruddha DebCPPg++13.3.0Error
Dec 29, 2025 22:49Aniruddha DebAniruddha DebCPPg++13.3.0Error
Dec 29, 2025 22:48Aniruddha DebAniruddha DebCPPg++13.3.0Error
Dec 29, 2025 22:47Aniruddha DebAniruddha DebCPPg++13.3.0Error
Dec 29, 2025 22:36Aniruddha DebAniruddha DebCPPg++13.3.0Success14,979
Dec 29, 2025 22:36Aniruddha DebAniruddha DebCPPg++13.3.0Success12,626
Dec 29, 2025 22:35Aniruddha DebAniruddha DebCPPg++13.3.0Success20,766
Dec 29, 2025 22:32Aniruddha DebAniruddha DebCPPg++13.3.0Error
Dec 29, 2025 22:31Aniruddha DebAniruddha DebCPPg++13.3.0Error