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
Feb 19, 2026 03:17Josu San MartinJosu San MartinCPPg++13.3.0Success3,734
Feb 19, 2026 03:13Josu San MartinJosu San MartinCPPg++13.3.0Success3,798
Feb 19, 2026 03:03Josu San MartinJosu San MartinCPPg++13.3.0Success3,688+16.08 RP
Feb 19, 2026 02:54Josu San MartinJosu San MartinCPPg++13.3.0Success3,719
Feb 19, 2026 02:36Josu San MartinJosu San MartinCPPg++13.3.0Error
Feb 19, 2026 02:34Josu San MartinJosu San MartinCPPg++13.3.0Error
Feb 19, 2026 02:33Josu San MartinJosu San MartinCPPg++13.3.0Error
Feb 19, 2026 02:32Josu San MartinJosu San MartinCPPg++13.3.0Error
Feb 19, 2026 02:30Josu San MartinJosu San MartinCPPg++13.3.0Error
Feb 19, 2026 02:16Josu San MartinJosu San MartinCPPg++13.3.0Success3,755
Feb 19, 2026 02:15Josu San MartinJosu San MartinCPPg++13.3.0Success3,917
Feb 19, 2026 02:06Josu San MartinJosu San MartinCPPg++13.3.0Error
Feb 19, 2026 02:02Josu San MartinJosu San MartinCPPg++13.3.0Success3,755
Feb 19, 2026 01:57Josu San MartinJosu San MartinCPPg++13.3.0Error
Feb 19, 2026 01:54Josu San MartinJosu San MartinCPPg++13.3.0Success3,748
Feb 19, 2026 01:53Josu San MartinJosu San MartinCPPg++13.3.0Success3,710+30.17 RP
Feb 19, 2026 01:49Josu San MartinJosu San MartinCPPg++13.3.0Success3,843
Feb 19, 2026 01:43Josu San MartinJosu San MartinCPPg++13.3.0Error
Feb 19, 2026 01:38Josu San MartinJosu San MartinCPPg++13.3.0Success3,752+19.04 RP
Feb 19, 2026 01:27Josu San MartinJosu San MartinCPPg++13.3.0Error
Feb 19, 2026 01:25Josu San MartinJosu San MartinCPPg++13.3.0Success3,878
Feb 19, 2026 01:22Josu San MartinJosu San MartinCPPg++13.3.0Error
Feb 19, 2026 01:21Josu San MartinJosu San MartinCPPg++13.3.0Error
Feb 19, 2026 01:20Josu San MartinJosu San MartinCPPg++13.3.0Error
Feb 19, 2026 01:19Josu San MartinJosu San MartinCPPg++13.3.0Error
Feb 19, 2026 01:18Josu San MartinJosu San MartinCPPg++13.3.0Error
Feb 19, 2026 01:16Josu San MartinJosu San MartinCPPg++13.3.0Error
Feb 19, 2026 01:15Josu San MartinJosu San MartinCPPg++13.3.0Error
Feb 19, 2026 01:10Josu San MartinJosu San MartinCPPg++13.3.0Success4,005
Feb 19, 2026 01:08Josu San MartinJosu San MartinCPPg++13.3.0Error
Feb 19, 2026 01:07Josu San MartinJosu San MartinCPPg++13.3.0Error
Feb 19, 2026 01:06Josu San MartinJosu San MartinCPPg++13.3.0Error
Feb 19, 2026 01:03Josu San MartinJosu San MartinCPPg++13.3.0Error
Feb 19, 2026 01:02Josu San MartinJosu San MartinCPPg++13.3.0Success3,779+56.87 RP
Feb 19, 2026 00:57Josu San MartinJosu San MartinCPPg++13.3.0Error
Feb 19, 2026 00:53Josu San MartinJosu San MartinCPPg++13.3.0Error
Feb 19, 2026 00:38Josu San MartinJosu San MartinCPPg++13.3.0Error
Feb 19, 2026 00:37Josu San MartinJosu San MartinCPPg++13.3.0Error
Feb 19, 2026 00:36Josu San MartinJosu San MartinCPPg++13.3.0Error
Feb 19, 2026 00:33Josu San MartinJosu San MartinCPPg++13.3.0Error
Feb 19, 2026 00:32Josu San MartinJosu San MartinCPPg++13.3.0Error
Feb 19, 2026 00:29Josu San MartinJosu San MartinCPPg++13.3.0Error
Feb 19, 2026 00:28Josu San MartinJosu San MartinCPPg++13.3.0Error
Feb 19, 2026 00:26Josu San MartinJosu San MartinCPPg++13.3.0Success3,862+123.24 RP
Feb 19, 2026 00:15Josu San MartinJosu San MartinCPPg++13.3.0Error
Feb 19, 2026 00:13Josu San MartinJosu San MartinCPPg++13.3.0Error
Feb 19, 2026 00:12Josu San MartinJosu San MartinCPPg++13.3.0Error
Feb 19, 2026 00:06Josu San MartinJosu San MartinCPPg++13.3.0Error
Feb 19, 2026 00:03Josu San MartinJosu San MartinCPPg++13.3.0Success4,055+104.26 RP
Feb 19, 2026 00:01Josu San MartinJosu San MartinCPPg++13.3.0Error
Feb 19, 2026 00:00Josu San MartinJosu San MartinCPPg++13.3.0Success4,259
Feb 18, 2026 23:59Josu San MartinJosu San MartinCPPg++13.3.0Error
Feb 18, 2026 23:57Josu San MartinJosu San MartinCPPg++13.3.0Success4,266
Feb 18, 2026 23:52Josu San MartinJosu San MartinCPPg++13.3.0Error
Feb 18, 2026 23:47Josu San MartinJosu San MartinCPPg++13.3.0Success4,341
Feb 18, 2026 23:46Josu San MartinJosu San MartinCPPg++13.3.0Success4,234+179.86 RP
Feb 18, 2026 23:43Josu San MartinJosu San MartinCPPg++13.3.0Error
Feb 18, 2026 23:37Josu San MartinJosu San MartinCPPg++13.3.0Success4,583+72.72 RP
Feb 18, 2026 23:26Josu San MartinJosu San MartinCPPg++13.3.0Error
Feb 18, 2026 23:25Josu San MartinJosu San MartinCPPg++13.3.0Error
Feb 18, 2026 23:24Josu San MartinJosu San MartinCPPg++13.3.0Success4,741+378.86 RP
Feb 18, 2026 23:23Josu San MartinJosu San MartinCPPg++13.3.0Error
Feb 18, 2026 23:14Josu San MartinJosu San MartinCPPg++13.3.0Success5,779+9.23 RP
Feb 18, 2026 23:11Josu San MartinJosu San MartinCPPg++13.3.0Error
Feb 18, 2026 23:09Josu San MartinJosu San MartinCPPg++13.3.0Error
Feb 17, 2026 13:30olliecrowolliecrowCPPg++13.3.0Success126,241
Feb 14, 2026 11:06Juraj ZelmanJuraj ZelmanRUSTrust-1.93.1Success37,003
Feb 14, 2026 11:04Juraj ZelmanJuraj ZelmanRUSTrust-1.93.1Error
Feb 14, 2026 09:25Juraj ZelmanJuraj ZelmanRUSTrust-1.91.1Success36,622+28.78 RP
Feb 14, 2026 09:06Juraj ZelmanJuraj ZelmanRUSTrust-1.91.1Error
Feb 13, 2026 22:06Juraj ZelmanJuraj ZelmanRUSTrust-1.91.1Success41,593
Feb 13, 2026 01:10Code HintsCode HintsGOgo1.26.0Success51,495
Feb 13, 2026 01:03Code HintsCode HintsCPPg++13.3.0Success39,848
Feb 13, 2026 01:02Code HintsCode HintsCSHARP9.0.13Success52,786+11.63 RP
Feb 13, 2026 00:59Code HintsCode HintsCSHARP9.0.13Success56,364
Feb 13, 2026 00:44Code HintsCode HintsCPPg++13.3.0Success45,416
Feb 13, 2026 00:43Code HintsCode HintsRUSTrust-1.93.1Success94,612
Feb 13, 2026 00:33Code HintsCode HintsRUSTrust-1.93.1Success40,000
Feb 13, 2026 00:31Code HintsCode HintsRUSTrust-1.93.1Error
Feb 13, 2026 00:20Code HintsCode HintsRUSTrust-1.93.1Success61,402
Feb 13, 2026 00:09Code HintsCode HintsRUSTrust-1.93.1Success54,167
Feb 12, 2026 23:55Code HintsCode HintsRUSTrust-1.93.1Success88,221
Feb 12, 2026 23:49Code HintsCode HintsRUSTrust-1.93.1Success41,960
Feb 12, 2026 23:45Code HintsCode HintsRUSTrust-1.92.0Success39,484
Feb 12, 2026 23:40Code HintsCode HintsRUSTrust-1.93.1Success39,759
Feb 12, 2026 23:38Code HintsCode HintsRUSTrust-1.93.1Success39,126
Feb 12, 2026 23:31Code HintsCode HintsRUSTrust-1.93.1Success38,867
Feb 12, 2026 23:31Code HintsCode HintsRUSTrust-1.93.1Success37,764+1.91 RP
Feb 12, 2026 23:26Code HintsCode HintsRUSTrust-1.93.0Error
Feb 12, 2026 23:19Code HintsCode HintsRUSTrust-1.93.0Error
Feb 12, 2026 23:19Code HintsCode HintsRUSTrust-1.93.0Success38,928
Feb 12, 2026 23:11Code HintsCode HintsRUSTrust-1.93.1Success49,138
Feb 12, 2026 23:09Code HintsCode HintsRUSTrust-1.93.1Success38,038+4.10 RP
Feb 12, 2026 23:06Code HintsCode HintsRUSTrust-1.93.1Success112,041
Feb 12, 2026 23:00Code HintsCode HintsRUSTrust-1.93.1Success63,041
Feb 12, 2026 22:56Code HintsCode HintsRUSTrust-1.93.1Success39,755
Feb 12, 2026 22:54Code HintsCode HintsRUSTrust-1.93.1Success40,160
Feb 12, 2026 22:45Code HintsCode HintsRUSTrust-1.93.1Success38,641+17.29 RP
Feb 12, 2026 22:37Code HintsCode HintsRUSTrust-1.93.1Error
Feb 12, 2026 22:14Juraj ZelmanJuraj ZelmanRUSTrust-1.91.1Success40,936+22.02 RP