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 8, 2022 02:14Istomin MikhailIstomin MikhailCPPg++9.3.0Success1,749,918
Feb 8, 2022 02:12Istomin MikhailIstomin MikhailCPPg++9.3.0Success2,062,947
Feb 8, 2022 02:11Istomin MikhailIstomin MikhailCPPg++9.3.0Error
Feb 8, 2022 02:07Istomin MikhailIstomin MikhailCPPg++9.3.0Error
Feb 8, 2022 02:02Istomin MikhailIstomin MikhailCPPg++9.3.0Success1,739,397+1.32 RP
Feb 7, 2022 15:39Istomin MikhailIstomin MikhailCPPg++9.3.0Error
Feb 7, 2022 15:37Istomin MikhailIstomin MikhailCPPg++9.3.0Error
Feb 7, 2022 15:10Istomin MikhailIstomin MikhailCPPg++9.3.0Success2,258,764+4.43 RP
Feb 5, 2022 08:17Andrey TsvetkovAndrey TsvetkovGOgo1.17.6Error
Jan 22, 2022 19:22Andrey TsvetkovAndrey TsvetkovGOgo1.17.6Success286,955+0.11 RP
Jan 22, 2022 19:20Andrey TsvetkovAndrey TsvetkovGOgo1.17.6Success287,879+0.24 RP
Jan 22, 2022 19:07Andrey TsvetkovAndrey TsvetkovGOgo1.17.6Success289,919+0.08 RP
Jan 22, 2022 16:03Andrey TsvetkovAndrey TsvetkovGOgo1.17.6Error
Jan 22, 2022 15:56Andrey TsvetkovAndrey TsvetkovGOgo1.17.6Error
Jan 22, 2022 15:53Andrey TsvetkovAndrey TsvetkovGOgo1.17.6Success324,582
Jan 22, 2022 15:52Andrey TsvetkovAndrey TsvetkovGOgo1.17.6Error
Jan 22, 2022 15:51Andrey TsvetkovAndrey TsvetkovGOgo1.17.6Success319,207
Jan 22, 2022 15:49Andrey TsvetkovAndrey TsvetkovGOgo1.17.6Success309,830
Jan 22, 2022 13:35Andrey TsvetkovAndrey TsvetkovGOgo1.17.6Success290,565+0.03 RP
Jan 22, 2022 13:11Andrey TsvetkovAndrey TsvetkovGOgo1.17.6Success290,840+0.01 RP
Jan 22, 2022 13:08Andrey TsvetkovAndrey TsvetkovGOgo1.17.6Success290,908+0.18 RP
Jan 22, 2022 13:07Andrey TsvetkovAndrey TsvetkovGOgo1.17.6Success292,462+0.44 RP
Jan 22, 2022 12:57Andrey TsvetkovAndrey TsvetkovGOgo1.17.6Success297,007
Jan 22, 2022 12:56Andrey TsvetkovAndrey TsvetkovGOgo1.17.6Success303,802
Jan 22, 2022 12:55Andrey TsvetkovAndrey TsvetkovGOgo1.17.6Success306,997
Jan 22, 2022 12:54Andrey TsvetkovAndrey TsvetkovGOgo1.17.6Success305,710
Jan 22, 2022 12:26Andrey TsvetkovAndrey TsvetkovGOgo1.17.6Success296,304
Jan 22, 2022 12:21Andrey TsvetkovAndrey TsvetkovGOgo1.17.6Success296,273+0.33 RP
Jan 22, 2022 12:20Andrey TsvetkovAndrey TsvetkovGOgo1.17.6Success299,156+0.07 RP
Jan 21, 2022 05:03Karam Jameel MooreKaram Jameel MooreCPPg++9.3.0Success2,260,675+4.42 RP
Jan 20, 2022 08:22unsatcoreunsatcoreCPPg++9.3.0Success130,205
Jan 20, 2022 08:21unsatcoreunsatcoreCPPg++9.3.0Success129,670
Jan 19, 2022 20:21Yuriy LyfenkoYuriy LyfenkoGOgo1.17.6Error
Jan 19, 2022 20:21Yuriy LyfenkoYuriy LyfenkoGOgo1.12.9Success88,620
Jan 19, 2022 20:18Andrey TsvetkovAndrey TsvetkovGOgo1.17.6Success1,429,159
Jan 19, 2022 20:15Andrey TsvetkovAndrey TsvetkovGOgo1.17.6Success1,421,704
Jan 19, 2022 20:14Andrey TsvetkovAndrey TsvetkovGOgo1.17.6Success1,422,341
Jan 19, 2022 20:10Andrey TsvetkovAndrey TsvetkovGOgo1.17.6Success1,414,852
Jan 19, 2022 19:57Andrey TsvetkovAndrey TsvetkovGOgo1.17.6Success1,415,053
Jan 19, 2022 19:47Andrey TsvetkovAndrey TsvetkovGOgo1.17.6Error
Jan 19, 2022 19:27Andrey TsvetkovAndrey TsvetkovGOgo1.14.15Success326,819
Jan 19, 2022 19:27Andrey TsvetkovAndrey TsvetkovGOgo1.17.3Success299,753+0.04 RP
Jan 19, 2022 19:26Andrey TsvetkovAndrey TsvetkovGOgo1.17.3Success300,099+0.35 RP
Jan 19, 2022 19:18Andrey TsvetkovAndrey TsvetkovGOgo1.17.3Success303,319+0.34 RP
Jan 19, 2022 19:18Andrey TsvetkovAndrey TsvetkovGOgo1.17.3Success307,512
Jan 19, 2022 19:16Andrey TsvetkovAndrey TsvetkovGOgo1.17.3Success306,523+0.43 RP
Jan 19, 2022 19:15Andrey TsvetkovAndrey TsvetkovGOgo1.17.3Success310,641+0.05 RP
Jan 19, 2022 19:10Andrey TsvetkovAndrey TsvetkovGOgo1.17.3Success311,115+27.72 RP
Jan 19, 2022 19:06Andrey TsvetkovAndrey TsvetkovGOgo1.17.3Error
Jan 19, 2022 18:03Andrey TsvetkovAndrey TsvetkovGOgo1.17.3Error
Jan 19, 2022 17:57Andrey TsvetkovAndrey TsvetkovGOgo1.17.3Error
Jan 19, 2022 17:55Andrey TsvetkovAndrey TsvetkovGOgo1.17.3Error
Jan 19, 2022 17:47Andrey TsvetkovAndrey TsvetkovGOgo1.17.3Error
Jan 19, 2022 17:35Andrey TsvetkovAndrey TsvetkovGOgo1.17.3Error
Jan 19, 2022 17:11Andrey TsvetkovAndrey TsvetkovGOgo1.17.3Error
Jan 19, 2022 17:10Andrey TsvetkovAndrey TsvetkovGOgo1.17.3Error
Jan 19, 2022 16:25Andrey TsvetkovAndrey TsvetkovGOgo1.17.3Error
Jan 19, 2022 16:24Andrey TsvetkovAndrey TsvetkovGOgo1.17.3Error
Jan 19, 2022 16:22Andrey TsvetkovAndrey TsvetkovGOgo1.17.3Error
Jan 19, 2022 16:06Andrey TsvetkovAndrey TsvetkovGOgo1.17.3Error
Jan 19, 2022 15:47Andrey TsvetkovAndrey TsvetkovCPPg++9.3.0Success2,262,553+4.42 RP
Jan 19, 2022 14:47unsatcoreunsatcoreCPPg++9.3.0Success129,460
Jan 19, 2022 14:45unsatcoreunsatcoreCPPg++9.3.0Error
Jan 19, 2022 14:32unsatcoreunsatcoreCPPg++9.3.0Success123,632
Jan 19, 2022 12:52unsatcoreunsatcoreCPPg++9.3.0Success115,455
Jan 19, 2022 08:25unsatcoreunsatcoreCPPg++9.3.0Success111,539+3.32 RP
Jan 19, 2022 08:24unsatcoreunsatcoreCPPg++9.3.0Error
Jan 19, 2022 08:09unsatcoreunsatcoreCPPg++9.3.0Success121,411
Jan 19, 2022 08:08unsatcoreunsatcoreCPPg++9.3.0Error
Jan 19, 2022 07:55unsatcoreunsatcoreCPPg++9.3.0Success115,822+6.85 RP
Jan 19, 2022 07:51unsatcoreunsatcoreCPPg++9.3.0Error
Jan 19, 2022 07:51unsatcoreunsatcoreCPPg++9.3.0Error
Jan 19, 2022 07:48unsatcoreunsatcoreCPPg++9.3.0Success128,050
Jan 18, 2022 23:40unsatcoreunsatcoreCPPg++9.3.0Success125,798+2.03 RP
Jan 18, 2022 23:36unsatcoreunsatcoreCPPg++9.3.0Success129,095+13.51 RP
Jan 18, 2022 22:20unsatcoreunsatcoreCPPg++9.3.0Success193,823
Jan 18, 2022 09:51unsatcoreunsatcoreCPPg++9.3.0Success156,372+6.99 RP
Jan 14, 2022 11:44unsatcoreunsatcoreCPPclang++10.0.0Success221,732
Jan 14, 2022 11:43unsatcoreunsatcoreCPPg++9.3.0Success175,556+3.12 RP
Jan 14, 2022 11:36unsatcoreunsatcoreCPPg++9.3.0Success188,409
Jan 14, 2022 11:36unsatcoreunsatcoreCPPg++9.3.0Success189,926
Jan 14, 2022 11:35unsatcoreunsatcoreCPPg++9.3.0Error
Jan 14, 2022 11:34unsatcoreunsatcoreCPPg++9.3.0Error
Dec 29, 2021 14:42unsatcoreunsatcoreCPPg++9.3.0Success185,729+0.40 RP
Dec 29, 2021 14:41unsatcoreunsatcoreCPPclang++10.0.0Success221,903
Dec 29, 2021 14:40unsatcoreunsatcoreCPPg++9.3.0Success197,004
Dec 29, 2021 14:34unsatcoreunsatcoreCPPg++9.3.0Success187,113+32.69 RP
Dec 29, 2021 14:33unsatcoreunsatcoreCPPg++9.3.0Success1,748,887
Dec 29, 2021 14:32unsatcoreunsatcoreCPPg++9.3.0Error
Dec 29, 2021 14:27unsatcoreunsatcoreCPPg++9.3.0Error
Dec 29, 2021 14:25unsatcoreunsatcoreCPPg++9.3.0Error
Dec 29, 2021 14:24unsatcoreunsatcoreCPPg++9.3.0Error
Dec 29, 2021 14:22unsatcoreunsatcoreCPPg++9.3.0Error
Dec 29, 2021 14:21unsatcoreunsatcoreCPPg++9.3.0Error
Dec 25, 2021 05:03Alexander KimAlexander KimCPPg++9.3.0Success2,260,654+4.42 RP
Dec 22, 2021 17:22Yuriy LyfenkoYuriy LyfenkoGOgo1.17.5Success86,388+2.63 RP
Dec 22, 2021 17:21Yuriy LyfenkoYuriy LyfenkoGOgo1.16.12Success88,394+1.07 RP
Dec 22, 2021 17:20Yuriy LyfenkoYuriy LyfenkoGOgo1.17.5Error
Dec 22, 2021 17:18Yuriy LyfenkoYuriy LyfenkoGOgo1.13.9Success89,240
Dec 17, 2021 12:40unsatcoreunsatcoreCPPg++9.3.0Success481,775+0.56 RP