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
Dec 25, 2024 21:55Louis PonetLouis PonetRUSTrust-1.83.0Error
Dec 25, 2024 21:47Louis PonetLouis PonetRUSTrust-1.83.0Error
Dec 25, 2024 18:23Louis PonetLouis PonetRUSTrust-1.83.0Error
Dec 25, 2024 18:21Louis PonetLouis PonetRUSTrust-1.83.0Error
Dec 25, 2024 16:46Louis PonetLouis PonetRUSTrust-1.83.0Error
Dec 25, 2024 16:45Louis PonetLouis PonetRUSTrust-1.83.0Error
Dec 25, 2024 03:34Joad NacerJoad NacerCPPg++13.2.0Error
Dec 22, 2024 23:17HighloadGPTO1HighloadGPTO1CPPg++13.2.0Success429,838+0.58 RP
Dec 22, 2024 23:16HighloadGPTO1HighloadGPTO1CPPclang++18.1.3Success440,740+22.69 RP
Dec 20, 2024 19:16Yuriy LyfenkoYuriy LyfenkoCPPg++13.2.0Error
Dec 20, 2024 19:05Yuriy LyfenkoYuriy LyfenkoCPPclang++18.1.3Success54,348
Dec 20, 2024 19:02Yuriy LyfenkoYuriy LyfenkoCPPg++13.2.0Error
Dec 20, 2024 18:54Yuriy LyfenkoYuriy LyfenkoCPPg++13.2.0Error
Dec 20, 2024 18:46Yuriy LyfenkoYuriy LyfenkoCPPg++13.2.0Error
Dec 20, 2024 18:39Yuriy LyfenkoYuriy LyfenkoCPPg++13.2.0Error
Dec 20, 2024 18:39Yuriy LyfenkoYuriy LyfenkoCPPg++13.2.0Error
Dec 20, 2024 18:38Yuriy LyfenkoYuriy LyfenkoCPPg++13.2.0Error
Dec 20, 2024 18:36Yuriy LyfenkoYuriy LyfenkoCPPclang++18.1.3Success45,786
Dec 20, 2024 18:35Yuriy LyfenkoYuriy LyfenkoCPPg++13.2.0Error
Dec 20, 2024 17:12Yuriy LyfenkoYuriy LyfenkoCPPg++13.2.0Error
Dec 20, 2024 17:11Yuriy LyfenkoYuriy LyfenkoCPPg++13.2.0Error
Dec 20, 2024 17:07Yuriy LyfenkoYuriy LyfenkoCPPg++13.2.0Error
Dec 20, 2024 17:07Yuriy LyfenkoYuriy LyfenkoCPPg++13.2.0Error
Dec 20, 2024 17:06Yuriy LyfenkoYuriy LyfenkoCPPclang++18.1.3Success44,190
Dec 20, 2024 17:06Yuriy LyfenkoYuriy LyfenkoCPPg++13.2.0Error
Dec 20, 2024 16:59Yuriy LyfenkoYuriy LyfenkoCPPg++13.2.0Error
Dec 20, 2024 16:46Yuriy LyfenkoYuriy LyfenkoCPPg++13.2.0Error
Dec 20, 2024 16:38Yuriy LyfenkoYuriy LyfenkoCPPg++13.2.0Error
Dec 20, 2024 16:37Yuriy LyfenkoYuriy LyfenkoCPPg++13.2.0Error
Dec 20, 2024 16:36Yuriy LyfenkoYuriy LyfenkoCPPclang++18.1.3Error
Dec 20, 2024 16:11Yuriy LyfenkoYuriy LyfenkoCPPg++13.2.0Success48,679
Dec 20, 2024 16:10Yuriy LyfenkoYuriy LyfenkoCPPclang++18.1.3Success46,414
Dec 20, 2024 15:56Yuriy LyfenkoYuriy LyfenkoCPPclang++18.1.3Error
Dec 20, 2024 15:53Yuriy LyfenkoYuriy LyfenkoCPPclang++18.1.3Success46,386
Dec 20, 2024 15:53Yuriy LyfenkoYuriy LyfenkoCPPg++13.2.0Success49,186
Dec 20, 2024 08:12Yuriy LyfenkoYuriy LyfenkoCPPg++13.2.0Error
Dec 20, 2024 08:11Yuriy LyfenkoYuriy LyfenkoCPPg++13.2.0Error
Dec 20, 2024 05:44Yuriy LyfenkoYuriy LyfenkoCPPg++13.2.0Error
Dec 19, 2024 16:47yenw0dyenw0dGOgo1.22.10Error
Dec 19, 2024 16:46yenw0dyenw0dGOgo1.22.10Success1,373,157
Dec 19, 2024 16:45yenw0dyenw0dGOgo1.22.10Error
Dec 19, 2024 16:45yenw0dyenw0dGOgo1.22.10Error
Dec 19, 2024 16:43yenw0dyenw0dGOgo1.22.10Error
Dec 19, 2024 11:02Haha ExpertHaha ExpertCSHARP9.0.0Error
Dec 19, 2024 10:57Haha ExpertHaha ExpertCSHARP9.0.0Success4,178,472
Dec 19, 2024 03:57yenw0dyenw0dGOgo1.22.10Success132,228+1.38 RP
Dec 19, 2024 03:53yenw0dyenw0dGOgo1.22.10Error
Dec 19, 2024 03:50yenw0dyenw0dGOgo1.23.4Error
Dec 19, 2024 03:49yenw0dyenw0dGOgo1.21.7Success16,157,622
Dec 19, 2024 03:47yenw0dyenw0dGOgo1.21.7Success134,678+6.11 RP
Dec 19, 2024 03:44yenw0dyenw0dGOgo1.21.7Error
Dec 19, 2024 03:33yenw0dyenw0dGOgo1.21.7Success154,053
Dec 19, 2024 03:27yenw0dyenw0dGOgo1.21.7Error
Dec 18, 2024 17:15yenw0dyenw0dGOgo1.21.7Success275,188
Dec 17, 2024 12:53ffCPPclang++18.1.3Success2,367,060+4.22 RP
Dec 14, 2024 20:01Yuriy LyfenkoYuriy LyfenkoCSHARP9.0.0Error
Dec 14, 2024 19:55Yuriy LyfenkoYuriy LyfenkoCSHARP8.0.11Success72,166
Dec 14, 2024 19:53Yuriy LyfenkoYuriy LyfenkoCSHARP9.0.0Success61,917
Dec 14, 2024 19:51Yuriy LyfenkoYuriy LyfenkoCSHARP9.0.0Error
Dec 13, 2024 08:01Haha ExpertHaha ExpertCSHARP9.0.0Success4,189,667
Dec 12, 2024 18:45Yuriy LyfenkoYuriy LyfenkoCPPg++13.2.0Error
Dec 10, 2024 10:51Haha ExpertHaha ExpertCSHARP9.0.0Error
Dec 10, 2024 09:50Haha ExpertHaha ExpertCSHARP9.0.0-rc.2Success4,190,447
Dec 8, 2024 06:34E SequeiraE SequeiraCPPclang++18.1.3Error
Dec 8, 2024 06:34E SequeiraE SequeiraCPPg++13.2.0Success95,855
Dec 8, 2024 06:30E SequeiraE SequeiraCPPg++13.2.0Success101,905
Dec 8, 2024 06:30E SequeiraE SequeiraCPPg++13.2.0Success95,045
Dec 8, 2024 06:30E SequeiraE SequeiraCPPclang++18.1.3Error
Dec 7, 2024 18:41Haha ExpertHaha ExpertCPPg++13.2.0Error
Dec 6, 2024 10:16Haha ExpertHaha ExpertCSHARP9.0.0-rc.2Success4,210,124
Dec 6, 2024 09:53E SequeiraE SequeiraGOgo1.23.3Success143,541
Dec 6, 2024 09:52E SequeiraE SequeiraGOgo1.23.3Success149,441
Dec 6, 2024 09:51E SequeiraE SequeiraGOgo1.23.3Success149,036
Dec 6, 2024 09:49E SequeiraE SequeiraGOgo1.23.3Error
Dec 6, 2024 09:45E SequeiraE SequeiraGOgo1.23.3Success148,948
Dec 6, 2024 09:31E SequeiraE SequeiraGOgo1.23.3Error
Dec 4, 2024 12:19Haha ExpertHaha ExpertCSHARP9.0.0-rc.2Success4,196,283
Dec 2, 2024 08:57E SequeiraE SequeiraGOgo1.23.3Success134,767
Dec 2, 2024 08:56E SequeiraE SequeiraGOgo1.23.3Error
Dec 2, 2024 08:53E SequeiraE SequeiraGOgo1.23.3Error
Nov 29, 2024 11:41E SequeiraE SequeiraGOgo1.23.3Success37,207,812
Nov 29, 2024 11:26E SequeiraE SequeiraGOgo1.23.3Success37,881,697
Nov 27, 2024 23:49Joad NacerJoad NacerCPPclang++18.1.3Error
Nov 27, 2024 20:46Joad NacerJoad NacerCPPclang++18.1.3Error
Nov 27, 2024 20:08Joad NacerJoad NacerCPPclang++18.1.3Error
Nov 27, 2024 20:07Joad NacerJoad NacerCPPclang++18.1.3Error
Nov 27, 2024 20:03Joad NacerJoad NacerCPPclang++18.1.3Error
Nov 27, 2024 20:01Joad NacerJoad NacerCPPclang++18.1.3Error
Nov 27, 2024 19:57Joad NacerJoad NacerCPPclang++18.1.3Error
Nov 27, 2024 19:53Joad NacerJoad NacerCPPclang++18.1.3Error
Nov 27, 2024 19:53Joad NacerJoad NacerCPPclang++18.1.3Error
Nov 27, 2024 19:37Joad NacerJoad NacerCPPclang++18.1.3Error
Nov 27, 2024 19:24Joad NacerJoad NacerCPPclang++18.1.3Error
Nov 27, 2024 19:23Joad NacerJoad NacerCPPclang++18.1.3Error
Nov 27, 2024 19:20Joad NacerJoad NacerCPPclang++18.1.3Error
Nov 27, 2024 19:09Joad NacerJoad NacerCPPclang++18.1.3Error
Nov 27, 2024 19:08Joad NacerJoad NacerCPPclang++18.1.3Error
Nov 27, 2024 19:08Joad NacerJoad NacerCPPclang++18.1.3Error
Nov 27, 2024 19:07Joad NacerJoad NacerCPPclang++18.1.3Error
Nov 27, 2024 19:04Joad NacerJoad NacerCPPclang++18.1.3Error