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 30, 2024 17:35Louis PonetLouis PonetRUSTrust-1.83.0Success122,543+0.10 RP
Dec 30, 2024 17:32Louis PonetLouis PonetRUSTrust-1.83.0Error
Dec 30, 2024 17:32Louis PonetLouis PonetRUSTrust-1.83.0Error
Dec 30, 2024 17:32Louis PonetLouis PonetRUSTrust-1.83.0Error
Dec 30, 2024 17:30Louis PonetLouis PonetRUSTrust-1.83.0Success122,693+2.84 RP
Dec 30, 2024 17:28Louis PonetLouis PonetRUSTrust-1.83.0Success127,122+1.18 RP
Dec 30, 2024 17:25Louis PonetLouis PonetRUSTrust-1.83.0Success129,069
Dec 30, 2024 17:24Louis PonetLouis PonetRUSTrust-1.83.0Error
Dec 30, 2024 17:22Louis PonetLouis PonetRUSTrust-1.83.0Error
Dec 30, 2024 17:05Louis PonetLouis PonetRUSTrust-1.83.0Success129,059+36.97 RP
Dec 30, 2024 17:00Louis PonetLouis PonetRUSTrust-1.83.0Success265,957
Dec 30, 2024 00:06Louis PonetLouis PonetRUSTrust-1.83.0Success270,705
Dec 30, 2024 00:04Louis PonetLouis PonetRUSTrust-1.83.0Success268,664
Dec 29, 2024 23:48Louis PonetLouis PonetRUSTrust-1.83.0Success246,921
Dec 29, 2024 23:42Louis PonetLouis PonetRUSTrust-1.83.0Success246,848+0.05 RP
Dec 29, 2024 22:52Louis PonetLouis PonetRUSTrust-1.83.0Error
Dec 29, 2024 22:43Louis PonetLouis PonetRUSTrust-1.83.0Error
Dec 29, 2024 16:46Louis PonetLouis PonetRUSTrust-1.83.0Success247,169+3.29 RP
Dec 29, 2024 16:44Louis PonetLouis PonetRUSTrust-1.83.0Error
Dec 29, 2024 16:43Louis PonetLouis PonetRUSTrust-1.83.0Success386,890
Dec 29, 2024 16:42Louis PonetLouis PonetRUSTrust-1.83.0Success410,750
Dec 29, 2024 16:36Louis PonetLouis PonetRUSTrust-1.83.0Success328,953
Dec 29, 2024 16:35Louis PonetLouis PonetRUSTrust-1.83.0Success384,426
Dec 29, 2024 15:44Louis PonetLouis PonetRUSTrust-1.83.0Success269,057+0.57 RP
Dec 29, 2024 15:43Louis PonetLouis PonetRUSTrust-1.83.0Error
Dec 29, 2024 07:37Louis PonetLouis PonetRUSTrust-1.83.0Success286,452
Dec 29, 2024 07:32Louis PonetLouis PonetRUSTrust-1.83.0Success278,422
Dec 29, 2024 07:31Louis PonetLouis PonetRUSTrust-1.83.0Error
Dec 29, 2024 07:22Louis PonetLouis PonetRUSTrust-1.83.0Success279,824
Dec 29, 2024 07:16Louis PonetLouis PonetRUSTrust-1.83.0Success277,250
Dec 29, 2024 07:13Louis PonetLouis PonetRUSTrust-1.83.0Success278,095
Dec 29, 2024 07:09Louis PonetLouis PonetRUSTrust-1.83.0Success275,543
Dec 29, 2024 06:35Louis PonetLouis PonetRUSTrust-1.83.0Success2,817,010
Dec 29, 2024 06:31Louis PonetLouis PonetRUSTrust-1.83.0Success280,247
Dec 29, 2024 06:29Louis PonetLouis PonetRUSTrust-1.83.0Success280,948
Dec 29, 2024 06:27Louis PonetLouis PonetRUSTrust-1.83.0Success281,691
Dec 29, 2024 06:24Louis PonetLouis PonetRUSTrust-1.83.0Success5,538,733
Dec 28, 2024 23:25korey-skorey-sRUSTrust-1.83.0Success131,747+0.55 RP
Dec 28, 2024 17:24Louis PonetLouis PonetRUSTrust-1.83.0Success1,098,321
Dec 28, 2024 17:23Louis PonetLouis PonetRUSTrust-1.83.0Success1,337,871
Dec 28, 2024 17:21Louis PonetLouis PonetRUSTrust-1.83.0Success1,394,421
Dec 28, 2024 17:18Louis PonetLouis PonetRUSTrust-1.83.0Success1,484,450
Dec 28, 2024 17:17Louis PonetLouis PonetRUSTrust-1.83.0Error
Dec 28, 2024 13:29Louis PonetLouis PonetRUSTrust-1.83.0Error
Dec 28, 2024 13:28Louis PonetLouis PonetRUSTrust-1.83.0Error
Dec 28, 2024 13:26Louis PonetLouis PonetRUSTrust-1.83.0Error
Dec 28, 2024 13:22Louis PonetLouis PonetRUSTrust-1.83.0Error
Dec 28, 2024 13:19Louis PonetLouis PonetRUSTrust-1.83.0Error
Dec 28, 2024 13:17Louis PonetLouis PonetRUSTrust-1.83.0Success442,024
Dec 28, 2024 13:13Louis PonetLouis PonetRUSTrust-1.83.0Success6,663,352
Dec 28, 2024 13:10Louis PonetLouis PonetRUSTrust-1.83.0Error
Dec 28, 2024 13:08Louis PonetLouis PonetRUSTrust-1.83.0Error
Dec 28, 2024 13:04Louis PonetLouis PonetRUSTrust-1.83.0Error
Dec 28, 2024 12:33Louis PonetLouis PonetRUSTrust-1.83.0Error
Dec 28, 2024 12:26Louis PonetLouis PonetRUSTrust-1.83.0Error
Dec 28, 2024 12:22Louis PonetLouis PonetRUSTrust-1.83.0Error
Dec 28, 2024 12:22Louis PonetLouis PonetRUSTrust-1.83.0Error
Dec 28, 2024 12:21Louis PonetLouis PonetRUSTrust-1.83.0Error
Dec 28, 2024 12:20Louis PonetLouis PonetRUSTrust-1.83.0Error
Dec 28, 2024 12:19Louis PonetLouis PonetRUSTrust-1.83.0Error
Dec 28, 2024 11:28Louis PonetLouis PonetRUSTrust-1.83.0Error
Dec 28, 2024 11:11Louis PonetLouis PonetRUSTrust-1.83.0Error
Dec 28, 2024 11:10Louis PonetLouis PonetRUSTrust-1.83.0Error
Dec 28, 2024 11:08Louis PonetLouis PonetRUSTrust-1.83.0Error
Dec 28, 2024 11:07Louis PonetLouis PonetRUSTrust-1.83.0Error
Dec 28, 2024 11:06Louis PonetLouis PonetRUSTrust-1.83.0Error
Dec 28, 2024 11:05Louis PonetLouis PonetRUSTrust-1.83.0Error
Dec 28, 2024 11:03Louis PonetLouis PonetRUSTrust-1.83.0Error
Dec 28, 2024 10:40Louis PonetLouis PonetRUSTrust-1.83.0Error
Dec 28, 2024 10:38Louis PonetLouis PonetRUSTrust-1.83.0Error
Dec 28, 2024 10:36Louis PonetLouis PonetRUSTrust-1.83.0Error
Dec 28, 2024 10:06Louis PonetLouis PonetRUSTrust-1.83.0Error
Dec 27, 2024 18:00Louis PonetLouis PonetRUSTrust-1.83.0Error
Dec 27, 2024 17:54Louis PonetLouis PonetRUSTrust-1.83.0Error
Dec 27, 2024 17:14Louis PonetLouis PonetRUSTrust-1.83.0Error
Dec 27, 2024 16:39Louis PonetLouis PonetRUSTrust-1.83.0Error
Dec 27, 2024 16:38Louis PonetLouis PonetRUSTrust-1.83.0Error
Dec 27, 2024 16:36Louis PonetLouis PonetRUSTrust-1.83.0Error
Dec 27, 2024 16:31Louis PonetLouis PonetRUSTrust-1.83.0Success273,216+0.08 RP
Dec 27, 2024 16:29Louis PonetLouis PonetRUSTrust-1.83.0Success273,824+1.02 RP
Dec 27, 2024 16:21Louis PonetLouis PonetRUSTrust-1.83.0Error
Dec 27, 2024 14:36Louis PonetLouis PonetRUSTrust-1.83.0Error
Dec 27, 2024 14:35Louis PonetLouis PonetRUSTrust-1.83.0Error
Dec 27, 2024 14:32Louis PonetLouis PonetRUSTrust-1.83.0Error
Dec 27, 2024 14:31Louis PonetLouis PonetRUSTrust-1.83.0Error
Dec 27, 2024 14:29Louis PonetLouis PonetRUSTrust-1.83.0Error
Dec 27, 2024 14:19Louis PonetLouis PonetRUSTrust-1.83.0Error
Dec 27, 2024 14:18Louis PonetLouis PonetRUSTrust-1.83.0Error
Dec 27, 2024 14:18Louis PonetLouis PonetRUSTrust-1.83.0Error
Dec 27, 2024 14:07Louis PonetLouis PonetRUSTrust-1.83.0Error
Dec 27, 2024 11:13Louis PonetLouis PonetRUSTrust-1.83.0Success281,690+0.01 RP
Dec 27, 2024 11:13Louis PonetLouis PonetRUSTrust-1.83.0Success282,419
Dec 27, 2024 11:12Louis PonetLouis PonetRUSTrust-1.83.0Success282,012
Dec 27, 2024 11:08Louis PonetLouis PonetRUSTrust-1.83.0Success281,871
Dec 27, 2024 11:07Louis PonetLouis PonetRUSTrust-1.83.0Success281,731+0.61 RP
Dec 27, 2024 10:51Louis PonetLouis PonetRUSTrust-1.83.0Success286,648+0.38 RP
Dec 27, 2024 10:38Louis PonetLouis PonetRUSTrust-1.83.0Error
Dec 27, 2024 10:34Louis PonetLouis PonetRUSTrust-1.83.0Success302,876
Dec 27, 2024 10:33Louis PonetLouis PonetRUSTrust-1.83.0Error
Dec 27, 2024 10:25Louis PonetLouis PonetRUSTrust-1.83.0Error