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
Jan 20, 2025 13:53Code HintsCode HintsRUSTrust-1.84.0Success139,048
Jan 20, 2025 13:51Code HintsCode HintsRUSTrust-1.84.0Success137,678
Jan 20, 2025 13:45Code HintsCode HintsRUSTrust-1.84.0Success133,929
Jan 20, 2025 13:44Oleg KovalovOleg KovalovCPPclang++18.1.3Success2,007,200
Jan 20, 2025 13:43Code HintsCode HintsRUSTrust-1.84.0Success133,902
Jan 20, 2025 13:38Code HintsCode HintsRUSTrust-1.84.0Success135,472
Jan 20, 2025 13:33alxmrcktralxmrcktrRUSTrust-1.84.0Success133,697+0.47 RP
Jan 20, 2025 13:28Code HintsCode HintsRUSTrust-1.84.0Error
Jan 20, 2025 13:27Code HintsCode HintsRUSTrust-1.84.0Error
Jan 20, 2025 13:24alxmrcktralxmrcktrRUSTrust-1.84.0Success134,941
Jan 20, 2025 13:22Code HintsCode HintsRUSTrust-1.84.0Success135,771
Jan 20, 2025 13:21alxmrcktralxmrcktrRUSTrust-1.84.0Success136,447
Jan 20, 2025 13:20Code HintsCode HintsRUSTrust-1.84.0Success137,667
Jan 20, 2025 13:10Code HintsCode HintsRUSTrust-1.84.0Success133,695+0.03 RP
Jan 20, 2025 13:09Code HintsCode HintsRUSTrust-1.84.0Success133,741+0.03 RP
Jan 20, 2025 13:08alxmrcktralxmrcktrRUSTrust-1.84.0Success135,033
Jan 20, 2025 13:03Code HintsCode HintsRUSTrust-1.84.0Success133,788+1.01 RP
Jan 20, 2025 13:02alxmrcktralxmrcktrRUSTrust-1.84.0Success135,978
Jan 20, 2025 12:57alxmrcktralxmrcktrRUSTrust-1.84.0Success135,184
Jan 20, 2025 12:54alxmrcktralxmrcktrRUSTrust-1.84.0Success134,781
Jan 20, 2025 12:51Code HintsCode HintsRUSTrust-1.84.0Success136,224
Jan 20, 2025 12:50alxmrcktralxmrcktrRUSTrust-1.84.0Success134,541+0.13 RP
Jan 20, 2025 12:47Code HintsCode HintsRUSTrust-1.84.0Success137,447
Jan 20, 2025 12:45alxmrcktralxmrcktrRUSTrust-1.84.0Success134,778+0.03 RP
Jan 20, 2025 12:42Code HintsCode HintsRUSTrust-1.84.0Success136,060
Jan 20, 2025 12:38alxmrcktralxmrcktrRUSTrust-1.84.0Success135,347
Jan 20, 2025 12:24Code HintsCode HintsRUSTrust-1.84.0Success140,248
Jan 20, 2025 12:21Code HintsCode HintsRUSTrust-1.84.0Success136,186
Jan 20, 2025 12:15Code HintsCode HintsRUSTrust-1.84.0Success136,381
Jan 20, 2025 12:02alxmrcktralxmrcktrRUSTrust-1.84.0Success136,547
Jan 20, 2025 11:55alxmrcktralxmrcktrRUSTrust-1.84.0Success134,828+5.11 RP
Jan 20, 2025 11:54Code HintsCode HintsRUSTrust-1.84.0Success136,179
Jan 20, 2025 11:42Code HintsCode HintsRUSTrust-1.84.0Success135,624+4.35 RP
Jan 20, 2025 11:20alxmrcktralxmrcktrRUSTrust-1.84.0Success144,798+0.31 RP
Jan 20, 2025 11:19Code HintsCode HintsRUSTrust-1.84.0Success146,590
Jan 20, 2025 11:14Code HintsCode HintsRUSTrust-1.84.0Success147,193
Jan 20, 2025 11:10alxmrcktralxmrcktrRUSTrust-1.84.0Success145,460+0.41 RP
Jan 20, 2025 10:55alxmrcktralxmrcktrRUSTrust-1.84.0Success146,338+0.39 RP
Jan 20, 2025 10:54alxmrcktralxmrcktrRUSTrust-1.84.0Error
Jan 20, 2025 10:53Code HintsCode HintsRUSTrust-1.84.0Success148,795
Jan 20, 2025 10:52alxmrcktralxmrcktrRUSTrust-1.84.0Success147,186+0.40 RP
Jan 20, 2025 10:50alxmrcktralxmrcktrRUSTrust-1.84.0Error
Jan 20, 2025 10:48alxmrcktralxmrcktrRUSTrust-1.84.0Success148,050+0.78 RP
Jan 20, 2025 10:47Code HintsCode HintsRUSTrust-1.84.0Success148,260
Jan 20, 2025 10:45Code HintsCode HintsRUSTrust-1.84.0Success148,138
Jan 20, 2025 10:44Code HintsCode HintsRUSTrust-1.84.0Success145,371
Jan 20, 2025 10:42alxmrcktralxmrcktrRUSTrust-1.84.0Success150,195
Jan 20, 2025 10:31Code HintsCode HintsRUSTrust-1.84.0Success146,931
Jan 20, 2025 10:30Code HintsCode HintsRUSTrust-1.84.0Success146,453
Jan 20, 2025 10:28Code HintsCode HintsRUSTrust-1.84.0Success145,497
Jan 20, 2025 10:28alxmrcktralxmrcktrRUSTrust-1.84.0Success149,790+5.35 RP
Jan 20, 2025 10:23Code HintsCode HintsRUSTrust-1.84.0Success144,121+7.62 RP
Jan 20, 2025 10:22Code HintsCode HintsRUSTrust-1.84.0Success161,890+22.27 RP
Jan 20, 2025 09:44alxmrcktralxmrcktrRUSTrust-1.84.0Success162,852+0.41 RP
Jan 20, 2025 09:33alxmrcktralxmrcktrRUSTrust-1.84.0Success163,953+0.19 RP
Jan 20, 2025 09:31alxmrcktralxmrcktrRUSTrust-1.84.0Success164,453+0.31 RP
Jan 20, 2025 00:58Code HintsCode HintsRUSTrust-1.84.0Success301,022
Jan 20, 2025 00:54alxmrcktralxmrcktrRUSTrust-1.84.0Success165,293+4.37 RP
Jan 20, 2025 00:47alxmrcktralxmrcktrRUSTrust-1.84.0Success178,324
Jan 20, 2025 00:47alxmrcktralxmrcktrRUSTrust-1.84.0Success178,312
Jan 20, 2025 00:46alxmrcktralxmrcktrRUSTrust-1.84.0Success178,362
Jan 20, 2025 00:44alxmrcktralxmrcktrRUSTrust-1.84.0Success178,159+13.28 RP
Jan 20, 2025 00:40Code HintsCode HintsRUSTrust-1.84.0Success253,172+9.03 RP
Jan 20, 2025 00:38Code HintsCode HintsRUSTrust-1.84.0Error
Jan 20, 2025 00:36alxmrcktralxmrcktrRUSTrust-1.84.0Error
Jan 20, 2025 00:31alxmrcktralxmrcktrRUSTrust-1.84.0Error
Jan 20, 2025 00:30Code HintsCode HintsRUSTrust-1.84.0Success328,157+0.67 RP
Jan 20, 2025 00:22Code HintsCode HintsRUSTrust-1.84.0Success345,497
Jan 20, 2025 00:20alxmrcktralxmrcktrRUSTrust-1.84.0Success236,455
Jan 20, 2025 00:20Code HintsCode HintsRUSTrust-1.84.0Success339,014
Jan 20, 2025 00:19Code HintsCode HintsRUSTrust-1.84.0Success341,438
Jan 20, 2025 00:16alxmrcktralxmrcktrRUSTrust-1.84.0Success236,224
Jan 20, 2025 00:16alxmrcktralxmrcktrRUSTrust-1.84.0Success236,714
Jan 20, 2025 00:15alxmrcktralxmrcktrRUSTrust-1.84.0Success233,388+0.25 RP
Jan 20, 2025 00:15alxmrcktralxmrcktrRUSTrust-1.84.0Success235,222
Jan 20, 2025 00:10Code HintsCode HintsRUSTrust-1.84.0Error
Jan 20, 2025 00:06alxmrcktralxmrcktrRUSTrust-1.84.0Success234,771+3.37 RP
Jan 20, 2025 00:05alxmrcktralxmrcktrRUSTrust-1.84.0Success255,957
Jan 20, 2025 00:02alxmrcktralxmrcktrRUSTrust-1.84.0Success255,952
Jan 20, 2025 00:02alxmrcktralxmrcktrRUSTrust-1.84.0Success255,221
Jan 20, 2025 00:01alxmrcktralxmrcktrRUSTrust-1.84.0Success258,341
Jan 20, 2025 00:00alxmrcktralxmrcktrRUSTrust-1.84.0Success254,940+0.21 RP
Jan 19, 2025 23:55alxmrcktralxmrcktrRUSTrust-1.84.0Success257,593
Jan 19, 2025 23:52Code HintsCode HintsRUSTrust-1.84.0Error
Jan 19, 2025 23:44alxmrcktralxmrcktrRUSTrust-1.84.0Success256,343+0.09 RP
Jan 19, 2025 23:42alxmrcktralxmrcktrRUSTrust-1.84.0Error
Jan 19, 2025 23:36alxmrcktralxmrcktrRUSTrust-1.84.0Success257,583
Jan 19, 2025 23:35alxmrcktralxmrcktrRUSTrust-1.84.0Success256,914+0.11 RP
Jan 19, 2025 23:31alxmrcktralxmrcktrRUSTrust-1.84.0Success257,669+24.67 RP
Jan 19, 2025 23:27Code HintsCode HintsRUSTrust-1.84.0Success335,676
Jan 19, 2025 23:19Ishaan VermaIshaan VermaCPPclang++18.1.3Success2,430,272
Jan 19, 2025 23:18Ishaan VermaIshaan VermaCPPg++13.2.0Success2,455,397
Jan 19, 2025 23:18Code HintsCode HintsRUSTrust-1.84.0Error
Jan 19, 2025 23:16Code HintsCode HintsRUSTrust-1.84.0Error
Jan 19, 2025 23:02Code HintsCode HintsRUSTrust-1.84.0Success335,581+0.03 RP
Jan 19, 2025 23:00Ishaan VermaIshaan VermaCPPclang++18.1.3Success2,408,562+4.15 RP
Jan 19, 2025 22:57Code HintsCode HintsRUSTrust-1.84.0Error
Jan 19, 2025 07:00AnSaAnSaCPPg++13.2.0Success2,525,307
Jan 19, 2025 02:52Code HintsCode HintsRUSTrust-1.84.0Success337,564
Jan 19, 2025 02:42Code HintsCode HintsRUSTrust-1.84.0Success335,903+0.19 RP