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 11, 2022 02:23Istomin MikhailIstomin MikhailCPPg++9.3.0Success191,159
Feb 10, 2022 16:47Istomin MikhailIstomin MikhailCPPg++9.3.0Success173,648+0.50 RP
Feb 10, 2022 16:45Istomin MikhailIstomin MikhailCPPg++9.3.0Success175,182+0.52 RP
Feb 10, 2022 16:37Istomin MikhailIstomin MikhailCPPg++9.3.0Success176,796+1.31 RP
Feb 10, 2022 16:34Istomin MikhailIstomin MikhailCPPg++9.3.0Success180,994+1.89 RP
Feb 10, 2022 16:32Istomin MikhailIstomin MikhailCPPg++9.3.0Success189,064
Feb 10, 2022 16:31Istomin MikhailIstomin MikhailCPPg++9.3.0Success257,256
Feb 10, 2022 15:40Istomin MikhailIstomin MikhailCPPg++9.3.0Success247,055
Feb 10, 2022 15:19Istomin MikhailIstomin MikhailCPPg++9.3.0Success187,412+1.68 RP
Feb 10, 2022 15:16Istomin MikhailIstomin MikhailCPPg++9.3.0Success193,513+10.80 RP
Feb 10, 2022 12:11Istomin MikhailIstomin MikhailCPPg++9.3.0Success244,670+3.78 RP
Feb 10, 2022 11:50Istomin MikhailIstomin MikhailCPPg++9.3.0Success269,621+11.54 RP
Feb 9, 2022 13:52Istomin MikhailIstomin MikhailCPPg++9.3.0Success750,153
Feb 9, 2022 13:01Istomin MikhailIstomin MikhailCPPg++9.3.0Success391,382+2.66 RP
Feb 9, 2022 13:00Istomin MikhailIstomin MikhailCPPg++9.3.0Success910,224
Feb 9, 2022 12:53Istomin MikhailIstomin MikhailCPPg++9.3.0Success436,773+3.84 RP
Feb 9, 2022 12:52Istomin MikhailIstomin MikhailCPPg++9.3.0Success934,575
Feb 9, 2022 12:51Istomin MikhailIstomin MikhailCPPg++9.3.0Success524,704+2.21 RP
Feb 9, 2022 12:37Istomin MikhailIstomin MikhailCPPg++9.3.0Success918,553
Feb 9, 2022 11:32Istomin MikhailIstomin MikhailCPPg++9.3.0Error
Feb 9, 2022 11:30Istomin MikhailIstomin MikhailCPPg++9.3.0Error
Feb 9, 2022 10:50Istomin MikhailIstomin MikhailCPPg++9.3.0Success593,516+1.05 RP
Feb 9, 2022 10:23Istomin MikhailIstomin MikhailCPPg++9.3.0Error
Feb 9, 2022 09:09Istomin MikhailIstomin MikhailCPPg++9.3.0Success633,041+5.03 RP
Feb 8, 2022 16:42Istomin MikhailIstomin MikhailCPPg++9.3.0Success1,685,179
Feb 8, 2022 16:35Istomin MikhailIstomin MikhailCPPg++9.3.0Success1,691,089
Feb 8, 2022 16:19Istomin MikhailIstomin MikhailCPPclang++10.0.0Success929,756
Feb 8, 2022 16:15Istomin MikhailIstomin MikhailCPPg++9.3.0Success928,521+5.01 RP
Feb 8, 2022 16:12Istomin MikhailIstomin MikhailCPPg++9.3.0Success1,736,085
Feb 8, 2022 16:10Istomin MikhailIstomin MikhailCPPg++9.3.0Error
Feb 8, 2022 10:02Istomin MikhailIstomin MikhailCPPg++9.3.0Success2,556,940
Feb 8, 2022 09:51Istomin MikhailIstomin MikhailCPPg++9.3.0Success2,588,669
Feb 8, 2022 09:38Istomin MikhailIstomin MikhailCPPg++9.3.0Success2,867,925
Feb 8, 2022 03:00Istomin MikhailIstomin MikhailCPPg++9.3.0Error
Feb 8, 2022 02:59Istomin MikhailIstomin MikhailCPPg++9.3.0Error
Feb 8, 2022 02:58Istomin MikhailIstomin MikhailCPPg++9.3.0Error
Feb 8, 2022 02:57Istomin MikhailIstomin MikhailCPPg++9.3.0Error
Feb 8, 2022 02:38Istomin MikhailIstomin MikhailCPPclang++10.0.0Success2,014,579
Feb 8, 2022 02:25Istomin MikhailIstomin MikhailCPPg++9.3.0Success1,741,187
Feb 8, 2022 02:24Istomin MikhailIstomin MikhailCPPg++9.3.0Success1,739,553
Feb 8, 2022 02:23Istomin MikhailIstomin MikhailCPPclang++10.0.0Success1,742,149
Feb 8, 2022 02:23Istomin MikhailIstomin MikhailCPPclang++10.0.0Success1,771,046
Feb 8, 2022 02:23Istomin MikhailIstomin MikhailCPPclang++10.0.0Success1,741,263
Feb 8, 2022 02:22Istomin MikhailIstomin MikhailCPPclang++10.0.0Success1,743,704
Feb 8, 2022 02:22Istomin MikhailIstomin MikhailCPPg++9.3.0Success1,736,618+0.01 RP
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