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 15, 2025 17:35HattonuriHattonuriCPPg++13.3.0Error
Dec 15, 2025 17:35HattonuriHattonuriCPPg++13.3.0Error
Dec 15, 2025 17:34HattonuriHattonuriCPPg++13.3.0Error
Dec 15, 2025 17:34HattonuriHattonuriCPPg++13.3.0Error
Dec 15, 2025 16:00Alexey IlyukhovAlexey IlyukhovCPPg++13.3.0Success73,650+1.64 RP
Dec 15, 2025 15:46HattonuriHattonuriCPPg++13.3.0Success41,536
Dec 15, 2025 15:46Alexey IlyukhovAlexey IlyukhovCPPclang++18.1.3Success74,802
Dec 15, 2025 15:45HattonuriHattonuriCPPg++13.3.0Success42,928
Dec 15, 2025 15:15HattonuriHattonuriCPPg++13.3.0Success40,414+8.79 RP
Dec 15, 2025 15:11HattonuriHattonuriCPPg++13.3.0Success43,434
Dec 15, 2025 15:11HattonuriHattonuriCPPg++13.3.0Success42,960
Dec 15, 2025 15:05HattonuriHattonuriCPPclang++18.1.3Success47,802
Dec 15, 2025 15:04HattonuriHattonuriCPPg++13.3.0Success41,902+6.52 RP
Dec 15, 2025 15:03HattonuriHattonuriCPPg++13.3.0Error
Dec 15, 2025 15:03HattonuriHattonuriCPPclang++18.1.3Error
Dec 15, 2025 14:52HattonuriHattonuriCPPclang++18.1.3Success50,264
Dec 15, 2025 14:51HattonuriHattonuriCPPclang++18.1.3Error
Dec 15, 2025 14:50HattonuriHattonuriCPPclang++18.1.3Success49,605
Dec 15, 2025 14:49HattonuriHattonuriCPPclang++18.1.3Success48,886
Dec 15, 2025 14:49HattonuriHattonuriCPPclang++18.1.3Error
Dec 15, 2025 14:46HattonuriHattonuriCPPg++13.3.0Success43,200
Dec 15, 2025 14:45HattonuriHattonuriCPPg++13.3.0Success46,722
Dec 15, 2025 14:43HattonuriHattonuriCPPg++13.3.0Success43,078+1.61 RP
Dec 15, 2025 14:42HattonuriHattonuriCPPg++13.3.0Success44,029
Dec 15, 2025 14:42HattonuriHattonuriCPPg++13.3.0Error
Dec 15, 2025 14:29HattonuriHattonuriCPPg++13.3.0Success50,581
Dec 15, 2025 14:16HattonuriHattonuriCPPg++13.3.0Success46,616
Dec 15, 2025 14:11HattonuriHattonuriCPPg++13.3.0Success46,800
Dec 15, 2025 13:52HattonuriHattonuriCPPg++13.3.0Error
Dec 15, 2025 13:44HattonuriHattonuriCPPg++13.3.0Success45,176
Dec 15, 2025 13:43HattonuriHattonuriCPPg++13.3.0Success43,378+0.21 RP
Dec 15, 2025 13:25HattonuriHattonuriCPPg++13.3.0Success47,266
Dec 15, 2025 13:25HattonuriHattonuriCPPg++13.3.0Success47,384
Dec 15, 2025 13:06HattonuriHattonuriCPPg++13.3.0Error
Dec 15, 2025 13:04HattonuriHattonuriCPPg++13.3.0Success45,012
Dec 15, 2025 12:54HattonuriHattonuriCPPg++13.3.0Success45,102
Dec 15, 2025 12:51HattonuriHattonuriCPPg++13.3.0Error
Dec 15, 2025 12:27HattonuriHattonuriCPPg++13.3.0Error
Dec 15, 2025 12:19HattonuriHattonuriCPPg++13.3.0Error
Dec 15, 2025 12:08HattonuriHattonuriCPPg++13.3.0Success50,241
Dec 15, 2025 12:05HattonuriHattonuriCPPg++13.3.0Error
Dec 15, 2025 12:03HattonuriHattonuriCPPg++13.3.0Success48,538
Dec 15, 2025 11:35HattonuriHattonuriCPPg++13.3.0Error
Dec 15, 2025 10:39HattonuriHattonuriCPPg++13.3.0Error
Dec 15, 2025 10:37HattonuriHattonuriCPPg++13.3.0Success49,141
Dec 15, 2025 10:19HattonuriHattonuriCPPg++13.3.0Success50,576
Dec 15, 2025 10:17HattonuriHattonuriCPPg++13.3.0Error
Dec 15, 2025 10:08HattonuriHattonuriCPPg++13.3.0Success50,172
Dec 15, 2025 10:08HattonuriHattonuriCPPg++13.3.0Success51,029
Dec 15, 2025 10:07HattonuriHattonuriCPPg++13.3.0Error
Dec 15, 2025 09:34HattonuriHattonuriCPPg++13.3.0Error
Dec 15, 2025 09:12HattonuriHattonuriCPPg++13.3.0Success44,095
Dec 15, 2025 09:09HattonuriHattonuriCPPg++13.3.0Error
Dec 15, 2025 09:09HattonuriHattonuriCPPg++13.3.0Success45,786
Dec 15, 2025 09:06HattonuriHattonuriCPPg++13.3.0Success44,721
Dec 15, 2025 09:05HattonuriHattonuriCPPg++13.3.0Success43,417+2.08 RP
Dec 15, 2025 08:55HattonuriHattonuriCPPg++13.3.0Success45,936
Dec 15, 2025 08:54HattonuriHattonuriCPPg++13.3.0Error
Dec 15, 2025 08:54HattonuriHattonuriCPPg++13.3.0Error
Dec 15, 2025 08:53HattonuriHattonuriCPPg++13.3.0Error
Dec 15, 2025 08:52HattonuriHattonuriCPPg++13.3.0Error
Dec 15, 2025 08:52HattonuriHattonuriCPPg++13.3.0Error
Dec 15, 2025 08:46HattonuriHattonuriCPPg++13.3.0Error
Dec 15, 2025 08:46HattonuriHattonuriCPPg++13.3.0Error
Dec 15, 2025 08:41HattonuriHattonuriCPPg++13.3.0Error
Dec 15, 2025 08:40HattonuriHattonuriCPPclang++18.1.3Error
Dec 15, 2025 07:08HattonuriHattonuriCPPg++13.3.0Success43,812+58.27 RP
Dec 15, 2025 06:01HattonuriHattonuriCPPg++13.3.0Error
Dec 15, 2025 05:50HattonuriHattonuriCPPg++13.3.0Success60,183
Dec 15, 2025 00:40HattonuriHattonuriCPPg++13.3.0Success64,871
Dec 15, 2025 00:35HattonuriHattonuriCPPg++13.3.0Error
Dec 15, 2025 00:30HattonuriHattonuriCPPg++13.3.0Success58,831+1.63 RP
Dec 15, 2025 00:28HattonuriHattonuriCPPg++13.3.0Success62,198
Dec 15, 2025 00:26HattonuriHattonuriCPPg++13.3.0Success61,412
Dec 15, 2025 00:23HattonuriHattonuriCPPg++13.3.0Success60,274
Dec 15, 2025 00:22HattonuriHattonuriCPPclang++18.1.3Error
Dec 15, 2025 00:21HattonuriHattonuriCPPclang++18.1.3Error
Dec 15, 2025 00:20HattonuriHattonuriCPPg++13.3.0Success70,091
Dec 15, 2025 00:07HattonuriHattonuriCPPg++13.3.0Success60,422
Dec 14, 2025 23:56HattonuriHattonuriCPPg++13.3.0Success64,041
Dec 14, 2025 23:55HattonuriHattonuriCPPg++13.3.0Success64,779
Dec 14, 2025 23:51HattonuriHattonuriCPPg++13.3.0Success60,136
Dec 14, 2025 23:51HattonuriHattonuriCPPg++13.3.0Error
Dec 14, 2025 23:49HattonuriHattonuriCPPg++13.3.0Error
Dec 14, 2025 23:38HattonuriHattonuriCPPg++13.3.0Success66,803
Dec 14, 2025 23:21HattonuriHattonuriCPPg++13.3.0Success59,400+0.66 RP
Dec 14, 2025 23:20HattonuriHattonuriCPPg++13.3.0Success63,814
Dec 14, 2025 23:18HattonuriHattonuriCPPg++13.3.0Success60,450
Dec 14, 2025 23:09HattonuriHattonuriCPPg++13.3.0Error
Dec 14, 2025 23:05HattonuriHattonuriCPPg++13.3.0Success59,633+0.11 RP
Dec 14, 2025 23:04HattonuriHattonuriCPPg++13.3.0Error
Dec 14, 2025 22:57HattonuriHattonuriCPPg++13.3.0Success59,822
Dec 14, 2025 22:54HattonuriHattonuriCPPg++13.3.0Success62,402
Dec 14, 2025 22:54HattonuriHattonuriCPPg++13.3.0Success67,402
Dec 14, 2025 22:28HattonuriHattonuriCPPg++13.3.0Success59,843
Dec 14, 2025 22:26HattonuriHattonuriCPPg++13.3.0Success59,671+9.59 RP
Dec 14, 2025 22:12HattonuriHattonuriCPPg++13.3.0Success65,312
Dec 14, 2025 22:09HattonuriHattonuriCPPg++13.3.0Success63,291+2.46 RP
Dec 14, 2025 21:56HattonuriHattonuriCPPg++13.3.0Success66,367
Dec 14, 2025 21:54HattonuriHattonuriCPPg++13.3.0Success64,290+10.69 RP