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
Jul 19, 2026 15:55Uladzislau NestsiarukUladzislau NestsiarukCPPclang++20.1.2Success730,070
Jul 19, 2026 15:53Uladzislau NestsiarukUladzislau NestsiarukCPPclang++20.1.2Error
Jul 19, 2026 15:37Uladzislau NestsiarukUladzislau NestsiarukCPPg++10.5.0Success734,346
Jul 19, 2026 15:35Uladzislau NestsiarukUladzislau NestsiarukCPPg++10.5.0Error
Jul 19, 2026 15:33Uladzislau NestsiarukUladzislau NestsiarukCPPg++14.2.0Success718,829
Jul 19, 2026 15:30Uladzislau NestsiarukUladzislau NestsiarukCPPclang++19.1.1Success711,967
Jul 19, 2026 15:29Uladzislau NestsiarukUladzislau NestsiarukCPPg++10.5.0Success709,282+6.37 RP
Jul 19, 2026 15:28Uladzislau NestsiarukUladzislau NestsiarukCPPg++10.5.0Error
Jul 19, 2026 15:24Uladzislau NestsiarukUladzislau NestsiarukCPPg++10.5.0Error
Jul 19, 2026 15:22Uladzislau NestsiarukUladzislau NestsiarukCPPg++10.5.0Error
Jul 19, 2026 15:21Uladzislau NestsiarukUladzislau NestsiarukCPPg++10.5.0Error
Jul 19, 2026 15:20Uladzislau NestsiarukUladzislau NestsiarukCPPclang++19.1.1Error
Jul 19, 2026 14:21Uladzislau NestsiarukUladzislau NestsiarukCPPg++10.5.0Success1,294,265+7.73 RP
Jul 15, 2026 23:54Andrew TsibinAndrew TsibinRUSTrust-1.95.0Success33,203+7.06 RP
Jul 15, 2026 23:19Andrew TsibinAndrew TsibinRUSTrust-1.95.0Success39,741
Jul 15, 2026 23:18Andrew TsibinAndrew TsibinRUSTrust-1.95.0Success39,618
Jul 15, 2026 23:17Andrew TsibinAndrew TsibinRUSTrust-1.95.0Success39,493
Jul 15, 2026 22:38Andrew TsibinAndrew TsibinRUSTrust-1.95.0Success39,384
Jul 15, 2026 22:21Andrew TsibinAndrew TsibinRUSTrust-1.95.0Success34,568
Jul 15, 2026 22:05Andrew TsibinAndrew TsibinRUSTrust-1.95.0Success37,510
Jul 15, 2026 21:00Andrew TsibinAndrew TsibinRUSTrust-1.95.0Success35,336
Jul 15, 2026 20:59Andrew TsibinAndrew TsibinRUSTrust-1.95.0Success38,843
Jul 15, 2026 20:59Andrew TsibinAndrew TsibinRUSTrust-1.95.0Success34,000+10.51 RP
Jul 15, 2026 20:58Andrew TsibinAndrew TsibinRUSTrust-1.95.0Success39,653
Jul 15, 2026 20:57Andrew TsibinAndrew TsibinRUSTrust-1.95.0Success35,260+24.18 RP
Jul 15, 2026 19:27Andrew TsibinAndrew TsibinRUSTrust-1.95.0Success38,546+5.58 RP
Jul 15, 2026 18:47Andrew TsibinAndrew TsibinRUSTrust-1.95.0Success39,393+18.14 RP
Jul 15, 2026 18:02Andrew TsibinAndrew TsibinRUSTrust-1.95.0Success44,329
Jul 15, 2026 17:02Andrew TsibinAndrew TsibinRUSTrust-1.95.0Success42,424+10.40 RP
Jul 15, 2026 10:52Andrew TsibinAndrew TsibinRUSTrust-1.95.0Success44,382+28.24 RP
Jul 15, 2026 09:58Andrew TsibinAndrew TsibinRUSTrust-1.95.0Success50,741+197.08 RP
Jul 14, 2026 22:39Victor MerckléVictor MerckléCPPg++14.2.0Success3,270
Jul 14, 2026 22:34Victor MerckléVictor MerckléCPPg++14.2.0Success3,179
Jul 14, 2026 22:29Victor MerckléVictor MerckléCPPg++14.2.0Success3,384
Jul 14, 2026 22:24Victor MerckléVictor MerckléCPPg++14.2.0Error
Jul 14, 2026 22:19Victor MerckléVictor MerckléCPPg++14.2.0Success3,258
Jul 10, 2026 18:28Genos0Genos0CPPg++10.5.0Success1,283,306+7.79 RP
Jul 9, 2026 14:53Victor MerckléVictor MerckléCPPg++14.2.0Error
Jul 9, 2026 14:48Victor MerckléVictor MerckléCPPg++14.2.0Error
Jul 9, 2026 14:43Victor MerckléVictor MerckléCPPg++14.2.0Error
Jul 9, 2026 14:38Victor MerckléVictor MerckléCPPg++14.2.0Success5,262
Jul 9, 2026 14:32Victor MerckléVictor MerckléCPPg++14.2.0Success38,915
Jul 9, 2026 14:26Victor MerckléVictor MerckléCPPg++14.2.0Error
Jul 9, 2026 14:21Victor MerckléVictor MerckléCPPg++14.2.0Error
Jul 9, 2026 14:11Victor MerckléVictor MerckléCPPg++14.2.0Success4,794
Jul 9, 2026 14:06Victor MerckléVictor MerckléCPPg++14.2.0Success3,017+129.26 RP
Jul 9, 2026 13:58Victor MerckléVictor MerckléCPPg++14.2.0Success3,381
Jul 9, 2026 13:53Victor MerckléVictor MerckléCPPg++14.2.0Success3,303
Jul 9, 2026 13:40Victor MerckléVictor MerckléCPPg++14.2.0Error
Jul 9, 2026 13:35Victor MerckléVictor MerckléCPPg++14.2.0Success3,103
Jul 9, 2026 13:27Victor MerckléVictor MerckléCPPg++14.2.0Success3,129
Jul 9, 2026 13:22Victor MerckléVictor MerckléCPPg++14.2.0Success3,189
Jul 9, 2026 13:16Victor MerckléVictor MerckléCPPg++14.2.0Success3,077+150.64 RP
Jul 9, 2026 13:11Victor MerckléVictor MerckléCPPg++14.2.0Success38,520
Jul 6, 2026 14:58Josu San MartinJosu San MartinCPPg++14.2.0Success45,832
Jul 6, 2026 09:00Josu San MartinJosu San MartinCPPg++14.2.0Success334,534
Jul 6, 2026 08:06Josu San MartinJosu San MartinCPPg++13.3.0Error
Jul 6, 2026 08:04Josu San MartinJosu San MartinCPPg++14.2.0Error
Jul 6, 2026 07:54Josu San MartinJosu San MartinCPPg++14.2.0Error
Jul 6, 2026 04:27Dennis FleurbaaijDennis FleurbaaijCPPg++14.2.0Success43,022+3.52 RP
Jul 6, 2026 02:36Dennis FleurbaaijDennis FleurbaaijCPPg++14.2.0Success43,684+20.37 RP
Jul 5, 2026 23:10Dennis FleurbaaijDennis FleurbaaijCPPg++14.2.0Success51,744
Jul 5, 2026 22:36Dennis FleurbaaijDennis FleurbaaijCPPg++14.2.0Success51,550
Jul 5, 2026 18:04Victor MerckléVictor MerckléCPPg++14.2.0Error
Jul 5, 2026 17:59Victor MerckléVictor MerckléCPPg++14.2.0Success3,210
Jul 5, 2026 17:54Victor MerckléVictor MerckléCPPg++14.2.0Success3,318
Jul 5, 2026 17:49Victor MerckléVictor MerckléCPPg++14.2.0Success3,215
Jul 5, 2026 17:44Victor MerckléVictor MerckléCPPg++14.2.0Success3,746
Jul 5, 2026 17:23Victor MerckléVictor MerckléCPPg++14.2.0Success5,341
Jul 5, 2026 17:18Victor MerckléVictor MerckléCPPg++14.2.0Success3,770
Jul 5, 2026 17:13Victor MerckléVictor MerckléCPPg++14.2.0Error
Jul 5, 2026 17:08Victor MerckléVictor MerckléCPPg++14.2.0Error
Jul 5, 2026 17:01Victor MerckléVictor MerckléCPPg++14.2.0Success7,246
Jul 5, 2026 16:56Victor MerckléVictor MerckléCPPg++14.2.0Error
Jul 5, 2026 16:51Victor MerckléVictor MerckléCPPg++14.2.0Success3,600
Jul 5, 2026 16:44Victor MerckléVictor MerckléCPPg++14.2.0Success224,225
Jul 5, 2026 04:17Dennis FleurbaaijDennis FleurbaaijCPPg++14.2.0Success51,336
Jul 5, 2026 03:53Dennis FleurbaaijDennis FleurbaaijCPPg++14.2.0Success47,951+1.53 RP
Jul 5, 2026 03:36Dennis FleurbaaijDennis FleurbaaijCPPg++14.2.0Success48,306+12.77 RP
Jul 5, 2026 02:57Dennis FleurbaaijDennis FleurbaaijCPPg++14.2.0Success52,363
Jul 5, 2026 02:29Dennis FleurbaaijDennis FleurbaaijCPPg++14.2.0Success51,481+1.54 RP
Jul 5, 2026 02:24Dennis FleurbaaijDennis FleurbaaijCPPg++14.2.0Success53,674
Jul 5, 2026 02:14Dennis FleurbaaijDennis FleurbaaijCPPg++14.2.0Success54,160
Jul 5, 2026 01:50Dennis FleurbaaijDennis FleurbaaijCPPg++14.2.0Success53,424
Jul 4, 2026 16:23Dennis FleurbaaijDennis FleurbaaijCPPg++10.5.0Success51,893+20.55 RP
Jul 4, 2026 06:04Dennis FleurbaaijDennis FleurbaaijCPPg++10.5.0Success58,087+0.87 RP
Jul 4, 2026 05:42Dennis FleurbaaijDennis FleurbaaijCPPg++10.5.0Success58,381+4.93 RP
Jul 4, 2026 01:12Dennis FleurbaaijDennis FleurbaaijCPPg++14.2.0Success60,112+36.79 RP
Jul 3, 2026 18:41Dennis FleurbaaijDennis FleurbaaijCPPg++14.2.0Success77,182+6.27 RP
Jul 3, 2026 16:49Dennis FleurbaaijDennis FleurbaaijCPPg++14.2.0Success81,108+29.25 RP
Jul 3, 2026 16:23Dennis FleurbaaijDennis FleurbaaijCPPg++14.2.0Success130,031
Jul 3, 2026 16:15Dennis FleurbaaijDennis FleurbaaijCPPg++14.2.0Success106,331+12.72 RP
Jul 3, 2026 15:47Dennis FleurbaaijDennis FleurbaaijCPPg++14.2.0Success186,306
Jul 3, 2026 15:43Dennis FleurbaaijDennis FleurbaaijCPPg++14.2.0Success125,827
Jul 3, 2026 15:34Dennis FleurbaaijDennis FleurbaaijCPPg++14.2.0Success122,965+58.86 RP
Jul 3, 2026 15:16Dennis FleurbaaijDennis FleurbaaijCPPg++10.5.0Success477,053
Jul 3, 2026 15:05Dennis FleurbaaijDennis FleurbaaijCPPg++14.2.0Success445,196+22.46 RP
Jul 3, 2026 14:43Victor MerckléVictor MerckléCPPg++14.2.0Success3,955
Jul 3, 2026 14:37Victor MerckléVictor MerckléCPPg++14.2.0Success3,705
Jul 3, 2026 14:32Victor MerckléVictor MerckléCPPg++14.2.0Success88,105