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 20, 2025 13:16HattonuriHattonuriCPPg++13.3.0Success37,281
Dec 20, 2025 12:06idatsyidatsyRUSTrust-1.92.0Success92,936
Dec 20, 2025 11:39idatsyidatsyRUSTrust-1.92.0Success82,557
Dec 20, 2025 11:08idatsyidatsyRUSTrust-1.92.0Success79,486+3.76 RP
Dec 20, 2025 03:10HattonuriHattonuriCPPg++13.3.0Success37,771
Dec 20, 2025 03:01HattonuriHattonuriCPPg++13.3.0Success36,419
Dec 20, 2025 03:00HattonuriHattonuriCPPg++13.3.0Success45,709
Dec 20, 2025 02:51HattonuriHattonuriCPPg++13.3.0Success37,886
Dec 20, 2025 02:50HattonuriHattonuriCPPg++13.3.0Success36,409
Dec 20, 2025 02:46HattonuriHattonuriCPPg++13.3.0Success38,571
Dec 20, 2025 02:40HattonuriHattonuriCPPg++13.3.0Success36,886
Dec 20, 2025 02:36HattonuriHattonuriCPPg++13.3.0Success37,940
Dec 20, 2025 02:32HattonuriHattonuriCPPg++13.3.0Success36,036
Dec 20, 2025 02:32HattonuriHattonuriCPPg++13.3.0Success38,859
Dec 20, 2025 02:27HattonuriHattonuriCPPg++13.3.0Success36,893
Dec 20, 2025 02:24HattonuriHattonuriCPPg++13.3.0Success38,684
Dec 20, 2025 02:18HattonuriHattonuriCPPg++13.3.0Success38,084
Dec 20, 2025 02:12HattonuriHattonuriCPPg++13.3.0Success36,864
Dec 20, 2025 02:01I Love HattonuriI Love HattonuriCPPclang++18.1.3Success1,289,902
Dec 20, 2025 02:01I Love HattonuriI Love HattonuriCPPclang++18.1.3Success1,303,178
Dec 20, 2025 01:59HattonuriHattonuriCPPg++13.3.0Success45,328
Dec 20, 2025 01:58I Love HattonuriI Love HattonuriCPPclang++18.1.3Success305,838+32.70 RP
Dec 20, 2025 01:48HattonuriHattonuriCPPg++13.3.0Success36,452
Dec 20, 2025 01:46HattonuriHattonuriCPPg++13.3.0Success36,998
Dec 20, 2025 00:33HattonuriHattonuriCPPg++13.3.0Success37,310
Dec 20, 2025 00:32HattonuriHattonuriCPPg++13.3.0Success39,941
Dec 20, 2025 00:28HattonuriHattonuriCPPg++13.3.0Success36,516
Dec 20, 2025 00:27HattonuriHattonuriCPPg++13.3.0Success37,850
Dec 19, 2025 23:53HattonuriHattonuriCPPg++13.3.0Success37,838
Dec 19, 2025 23:48HattonuriHattonuriCPPg++13.3.0Success38,481
Dec 19, 2025 23:47HattonuriHattonuriCPPg++13.3.0Success37,902
Dec 19, 2025 23:46HattonuriHattonuriCPPg++13.3.0Success38,064
Dec 19, 2025 23:45HattonuriHattonuriCPPg++13.3.0Success38,086
Dec 19, 2025 23:42HattonuriHattonuriCPPg++13.3.0Success37,766
Dec 19, 2025 23:40HattonuriHattonuriCPPg++13.3.0Success38,248
Dec 19, 2025 23:39HattonuriHattonuriCPPg++13.3.0Success38,276
Dec 19, 2025 23:39HattonuriHattonuriCPPg++13.3.0Success36,053
Dec 19, 2025 23:37HattonuriHattonuriCPPg++13.3.0Success36,686
Dec 19, 2025 23:35HattonuriHattonuriCPPg++13.3.0Success35,147+1.44 RP
Dec 19, 2025 23:35HattonuriHattonuriCPPg++13.3.0Success38,283
Dec 19, 2025 23:32HattonuriHattonuriCPPg++13.3.0Success38,402
Dec 19, 2025 23:29HattonuriHattonuriCPPg++13.3.0Success35,326+0.17 RP
Dec 19, 2025 23:24HattonuriHattonuriCPPg++13.3.0Success36,995
Dec 19, 2025 23:13HattonuriHattonuriCPPclang++18.1.3Success39,157
Dec 19, 2025 21:51idatsyidatsyRUSTrust-1.92.0Error
Dec 19, 2025 21:24idatsyidatsyRUSTError
Dec 19, 2025 19:59idatsyidatsyRUSTrust-1.92.0Success81,936+28.79 RP
Dec 19, 2025 19:43Josu San MartinJosu San MartinCPPg++13.3.0Success65,779
Dec 19, 2025 19:27Josu San MartinJosu San MartinRUSTrust-1.92.0Success65,848
Dec 19, 2025 19:25idatsyidatsyRUSTrust-1.92.0Success107,226+77.12 RP
Dec 19, 2025 19:01Josu San MartinJosu San MartinCPPg++13.3.0Success62,916
Dec 19, 2025 18:56Josu San MartinJosu San MartinCPPclang++18.1.3Success87,060
Dec 19, 2025 18:47Josu San MartinJosu San MartinCPPclang++18.1.3Success153,248
Dec 19, 2025 18:46Josu San MartinJosu San MartinRUSTrust-1.92.0Success93,403
Dec 19, 2025 18:45Josu San MartinJosu San MartinRUSTrust-1.92.0Error
Dec 19, 2025 18:43Josu San MartinJosu San MartinCPPg++13.3.0Success156,700
Dec 19, 2025 18:40Josu San MartinJosu San MartinRUSTrust-1.92.0Error
Dec 19, 2025 18:31Josu San MartinJosu San MartinCPPg++13.3.0Success65,303
Dec 19, 2025 18:29Josu San MartinJosu San MartinCPPclang++18.1.3Success63,422
Dec 19, 2025 18:26Josu San MartinJosu San MartinCPPg++13.3.0Success65,312
Dec 19, 2025 18:19HattonuriHattonuriCPPg++13.3.0Success38,314
Dec 19, 2025 18:10Josu San MartinJosu San MartinRUSTrust-1.92.0Success61,879
Dec 19, 2025 16:55Josu San MartinJosu San MartinRUSTrust-1.92.0Success61,872+3.00 RP
Dec 19, 2025 16:41HattonuriHattonuriCPPg++13.3.0Success37,057
Dec 19, 2025 16:40HattonuriHattonuriCPPg++13.3.0Success38,014
Dec 19, 2025 16:32HattonuriHattonuriCPPg++13.3.0Success39,476
Dec 19, 2025 16:30HattonuriHattonuriCPPg++13.3.0Success35,347+5.39 RP
Dec 19, 2025 16:29HattonuriHattonuriCPPg++13.3.0Success36,234
Dec 19, 2025 16:22Josu San MartinJosu San MartinRUSTrust-1.92.0Error
Dec 19, 2025 15:28Josu San MartinJosu San MartinRUSTrust-1.92.0Error
Dec 19, 2025 15:20Josu San MartinJosu San MartinRUSTrust-1.92.0Error
Dec 19, 2025 15:18Josu San MartinJosu San MartinRUSTrust-1.92.0Success62,991+4.04 RP
Dec 19, 2025 15:11HattonuriHattonuriCPPg++13.3.0Success36,967
Dec 19, 2025 14:56HattonuriHattonuriCPPg++13.3.0Success41,186
Dec 19, 2025 14:52HattonuriHattonuriCPPg++13.3.0Success38,278
Dec 19, 2025 14:50HattonuriHattonuriCPPg++13.3.0Success36,034+2.52 RP
Dec 19, 2025 14:47HattonuriHattonuriCPPg++13.3.0Success40,681
Dec 19, 2025 14:40HattonuriHattonuriCPPg++13.3.0Success37,298
Dec 19, 2025 14:34Josu San MartinJosu San MartinRUSTrust-1.92.0Error
Dec 19, 2025 14:31Tim ZhamoidinTim ZhamoidinCPPclang++18.1.3Success114,021
Dec 19, 2025 14:30Tim ZhamoidinTim ZhamoidinCPPclang++18.1.3Success109,860
Dec 19, 2025 14:26Tim ZhamoidinTim ZhamoidinCPPclang++18.1.3Success106,284
Dec 19, 2025 14:18Tim ZhamoidinTim ZhamoidinCPPclang++18.1.3Success105,069
Dec 19, 2025 14:16Tim ZhamoidinTim ZhamoidinCPPclang++18.1.3Success102,029+4.37 RP
Dec 19, 2025 14:12Tim ZhamoidinTim ZhamoidinCPPclang++18.1.3Success127,281
Dec 19, 2025 14:10Tim ZhamoidinTim ZhamoidinCPPclang++18.1.3Success122,157
Dec 19, 2025 14:08Tim ZhamoidinTim ZhamoidinCPPclang++18.1.3Success166,233
Dec 19, 2025 14:05Tim ZhamoidinTim ZhamoidinCPPclang++18.1.3Success136,076
Dec 19, 2025 14:01Tim ZhamoidinTim ZhamoidinCPPclang++18.1.3Success208,514
Dec 19, 2025 13:53Tim ZhamoidinTim ZhamoidinCPPclang++18.1.3Success106,786+7.02 RP
Dec 19, 2025 13:49Tim ZhamoidinTim ZhamoidinCPPclang++18.1.3Success115,434+39.69 RP
Dec 19, 2025 13:42Tim ZhamoidinTim ZhamoidinCPPclang++18.1.3Error
Dec 19, 2025 13:40Tim ZhamoidinTim ZhamoidinCPPclang++18.1.3Error
Dec 19, 2025 13:33Tim ZhamoidinTim ZhamoidinCPPclang++18.1.3Success213,555
Dec 19, 2025 13:32Tim ZhamoidinTim ZhamoidinCPPclang++18.1.3Success329,584
Dec 19, 2025 13:30Tim ZhamoidinTim ZhamoidinCPPclang++18.1.3Success213,059+3.01 RP
Dec 19, 2025 13:25Tim ZhamoidinTim ZhamoidinCPPclang++18.1.3Success227,655+0.60 RP
Dec 19, 2025 13:14Tim ZhamoidinTim ZhamoidinCPPclang++18.1.3Success230,788+25.53 RP
Dec 19, 2025 13:06Tim ZhamoidinTim ZhamoidinCPPclang++18.1.3Error
Dec 19, 2025 13:05Tim ZhamoidinTim ZhamoidinCPPclang++18.1.3Success677,602