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 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
Dec 14, 2025 21:52HattonuriHattonuriCPPg++13.3.0Success72,274
Dec 14, 2025 21:50HattonuriHattonuriCPPg++13.3.0Success69,034+25.68 RP
Dec 14, 2025 21:44HattonuriHattonuriCPPg++13.3.0Error
Dec 14, 2025 21:42HattonuriHattonuriCPPg++13.3.0Error
Dec 14, 2025 21:18HattonuriHattonuriCPPg++13.3.0Success83,909+5.71 RP
Dec 14, 2025 21:11HattonuriHattonuriCPPg++13.3.0Success92,431
Dec 14, 2025 20:59HattonuriHattonuriCPPg++13.3.0Success88,131+1.72 RP
Dec 14, 2025 20:58HattonuriHattonuriCPPg++13.3.0Success89,484+38.08 RP
Dec 14, 2025 20:50HattonuriHattonuriCPPg++13.3.0Error
Dec 14, 2025 20:43HattonuriHattonuriCPPg++13.3.0Success135,734+2.80 RP
Dec 14, 2025 20:40HattonuriHattonuriCPPg++13.3.0Success146,757
Dec 14, 2025 20:29HattonuriHattonuriCPPg++13.3.0Success151,507
Dec 14, 2025 20:22HattonuriHattonuriCPPg++13.3.0Success145,967
Dec 14, 2025 20:15HattonuriHattonuriCPPg++13.3.0Success141,691
Dec 14, 2025 19:58HattonuriHattonuriCPPg++13.3.0Success156,353
Dec 14, 2025 19:58HattonuriHattonuriCPPg++13.3.0Error
Dec 14, 2025 19:14HattonuriHattonuriCPPg++13.3.0Success145,552
Dec 14, 2025 18:44HattonuriHattonuriCPPg++13.3.0Success141,091+0.88 RP
Dec 14, 2025 18:44HattonuriHattonuriCPPg++13.3.0Success142,855+2.34 RP
Dec 14, 2025 18:43HattonuriHattonuriCPPg++13.3.0Success153,298
Dec 14, 2025 18:42HattonuriHattonuriCPPg++13.3.0Success154,941
Dec 14, 2025 18:41HattonuriHattonuriCPPg++13.3.0Success152,129
Dec 14, 2025 18:31HattonuriHattonuriCPPg++13.3.0Success147,798+4.62 RP