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 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
Dec 29, 2025 22:30Aniruddha DebAniruddha DebCPPg++13.3.0Error
Dec 29, 2025 22:30Aniruddha DebAniruddha DebCPPg++13.3.0Error
Dec 29, 2025 22:25Aniruddha DebAniruddha DebCPPg++13.3.0Success10,574
Dec 29, 2025 22:23Aniruddha DebAniruddha DebCPPg++13.3.0Success9,726
Dec 29, 2025 22:20Aniruddha DebAniruddha DebCPPg++13.3.0Error
Dec 29, 2025 22:20Aniruddha DebAniruddha DebCPPg++13.3.0Error
Dec 29, 2025 22:19Aniruddha DebAniruddha DebCPPg++13.3.0Error
Dec 29, 2025 22:18Aniruddha DebAniruddha DebCPPg++13.3.0Success13,659
Dec 29, 2025 22:17Aniruddha DebAniruddha DebCPPg++13.3.0Success17,078
Dec 29, 2025 22:11Aniruddha DebAniruddha DebCPPg++13.3.0Success13,874
Dec 29, 2025 22:11Aniruddha DebAniruddha DebCPPg++13.3.0Error
Dec 29, 2025 22:09Aniruddha DebAniruddha DebCPPg++13.3.0Success26,186
Dec 29, 2025 22:08Aniruddha DebAniruddha DebCPPclang++18.1.3Success15,402
Dec 29, 2025 22:05Aniruddha DebAniruddha DebCPPg++13.3.0Success15,690
Dec 29, 2025 22:05Aniruddha DebAniruddha DebCPPg++13.3.0Error
Dec 29, 2025 21:59Aniruddha DebAniruddha DebCPPg++13.3.0Error
Dec 29, 2025 21:54Aniruddha DebAniruddha DebCPPg++13.3.0Success14,521
Dec 29, 2025 21:52Aniruddha DebAniruddha DebCPPg++13.3.0Success16,633
Dec 29, 2025 21:48Aniruddha DebAniruddha DebCPPg++13.3.0Error
Dec 29, 2025 18:51KeefeKeefeCPPg++13.3.0Success88,795
Dec 29, 2025 18:21KeefeKeefeCPPg++13.3.0Success72,733+2.41 RP
Dec 29, 2025 18:17KeefeKeefeCPPg++13.3.0Success74,033+14.50 RP
Dec 29, 2025 17:52Unays Unays RUSTrust-1.87.0Success98,202
Dec 29, 2025 12:48KeefeKeefeCPPg++13.3.0Error
Dec 29, 2025 12:46KeefeKeefeCPPg++13.3.0Error
Dec 29, 2025 12:39KeefeKeefeCPPg++13.3.0Success126,812
Dec 29, 2025 12:29KeefeKeefeCPPg++13.3.0Success136,103
Dec 29, 2025 12:28KeefeKeefeCPPg++13.3.0Error
Dec 29, 2025 12:26KeefeKeefeCPPg++13.3.0Error
Dec 29, 2025 12:21KeefeKeefeCPPg++13.3.0Success124,878
Dec 29, 2025 12:12KeefeKeefeCPPclang++18.1.3Success117,762
Dec 29, 2025 12:11KeefeKeefeCPPg++13.3.0Success120,090
Dec 29, 2025 03:05Carl BergmanCarl BergmanRUSTrust-1.90.0Success146,326+0.49 RP
Dec 29, 2025 02:46Carl BergmanCarl BergmanRUSTrust-1.90.0Success147,383+27.80 RP
Dec 29, 2025 02:29Carl BergmanCarl BergmanRUSTrust-1.90.0Success249,690+5.63 RP
Dec 29, 2025 01:20spxudispxudiCPPg++13.3.0Success100,355
Dec 29, 2025 01:17spxudispxudiCPPg++13.3.0Success109,074
Dec 29, 2025 01:15spxudispxudiCPPg++13.3.0Success105,776
Dec 29, 2025 01:05spxudispxudiCPPg++13.3.0Success108,688
Dec 29, 2025 01:02Tim ZhamoidinTim ZhamoidinCPPclang++18.1.3Error
Dec 29, 2025 01:01spxudispxudiCPPg++13.3.0Success102,691
Dec 29, 2025 00:58Tim ZhamoidinTim ZhamoidinCPPclang++18.1.3Error
Dec 29, 2025 00:55spxudispxudiCPPg++13.3.0Success114,462
Dec 29, 2025 00:54Tim ZhamoidinTim ZhamoidinCPPclang++18.1.3Error
Dec 29, 2025 00:52Tim ZhamoidinTim ZhamoidinCPPclang++18.1.3Error
Dec 29, 2025 00:52Tim ZhamoidinTim ZhamoidinCPPclang++18.1.3Error
Dec 29, 2025 00:51Tim ZhamoidinTim ZhamoidinCPPclang++18.1.3Error
Dec 29, 2025 00:50spxudispxudiCPPg++13.3.0Success101,560
Dec 29, 2025 00:46spxudispxudiCPPg++13.3.0Success98,074+1.83 RP
Dec 29, 2025 00:46Tim ZhamoidinTim ZhamoidinCPPclang++18.1.3Success100,041
Dec 29, 2025 00:46spxudispxudiCPPg++13.3.0Success129,069
Dec 29, 2025 00:42Tim ZhamoidinTim ZhamoidinCPPclang++18.1.3Success143,416
Dec 29, 2025 00:41spxudispxudiCPPg++13.3.0Success109,395
Dec 29, 2025 00:40Tim ZhamoidinTim ZhamoidinCPPclang++18.1.3Success147,907
Dec 29, 2025 00:39spxudispxudiCPPg++13.3.0Success99,862+17.53 RP
Dec 29, 2025 00:39spxudispxudiCPPg++13.3.0Success345,729
Dec 29, 2025 00:38Tim ZhamoidinTim ZhamoidinCPPclang++18.1.3Success106,686
Dec 29, 2025 00:36spxudispxudiCPPg++13.3.0Error
Dec 29, 2025 00:34spxudispxudiCPPg++13.3.0Success221,048
Dec 29, 2025 00:33spxudispxudiCPPg++13.3.0Success150,457
Dec 29, 2025 00:31Tim ZhamoidinTim ZhamoidinCPPclang++18.1.3Success134,002
Dec 29, 2025 00:30spxudispxudiCPPg++13.3.0Success121,059+5.13 RP
Dec 29, 2025 00:28Tim ZhamoidinTim ZhamoidinCPPclang++18.1.3Success109,147
Dec 29, 2025 00:27spxudispxudiCPPg++13.3.0Success163,103
Dec 29, 2025 00:27spxudispxudiCPPg++13.3.0Success171,067
Dec 29, 2025 00:26Tim ZhamoidinTim ZhamoidinCPPg++13.3.0Success150,436
Dec 29, 2025 00:26Tim ZhamoidinTim ZhamoidinCPPclang++18.1.3Success148,683