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
Jun 22, 2026 14:31Code HintsCode HintsRUSTrust-1.96.0Error
Jun 22, 2026 14:23Code HintsCode HintsRUSTrust-1.96.0Error+99.42 RP
Jun 22, 2026 14:19Code HintsCode HintsRUSTrust-1.96.0Error+79.67 RP
Jun 22, 2026 14:02Code HintsCode HintsRUSTrust-1.85.1Error
Jun 22, 2026 13:57Code HintsCode HintsRUSTrust-1.85.1Error
Jun 22, 2026 13:37Code HintsCode HintsRUSTrust-1.85.1Error
Jun 22, 2026 13:22Code HintsCode HintsRUSTrust-1.96.0Error
Jun 22, 2026 13:11Code HintsCode HintsRUSTrust-1.96.0Error
Jun 22, 2026 13:10Code HintsCode HintsRUSTrust-1.85.1Error
Jun 22, 2026 12:59Code HintsCode HintsRUSTrust-1.85.1Error
Jun 22, 2026 12:56Code HintsCode HintsRUSTrust-1.85.1Error
Jun 22, 2026 12:48Code HintsCode HintsRUSTrust-1.85.1Error+893.88 RP
Jun 22, 2026 12:22Code HintsCode HintsRUSTrust-1.85.1Error+699.12 RP
Jun 22, 2026 11:57Code HintsCode HintsRUSTrust-1.85.1Error+668.73 RP
Jun 22, 2026 11:19Code HintsCode HintsRUSTrust-1.85.1Error
Jun 22, 2026 11:19Code HintsCode HintsRUSTrust-1.85.1Error
Jun 22, 2026 10:31Code HintsCode HintsRUSTrust-1.85.1Error
Jun 21, 2026 19:58A_ShamanA_ShamanCPPg++10.5.0Success272,250
Jun 21, 2026 19:56A_ShamanA_ShamanCPPg++10.5.0Success263,551+1.41 RP
Jun 21, 2026 19:55A_ShamanA_ShamanCPPg++10.5.0Success275,182
Jun 21, 2026 19:51A_ShamanA_ShamanCPPg++10.5.0Success276,931
Jun 21, 2026 19:49A_ShamanA_ShamanCPPg++10.5.0Success274,108
Jun 21, 2026 19:47A_ShamanA_ShamanCPPg++10.5.0Success273,720+0.81 RP
Jun 21, 2026 19:45A_ShamanA_ShamanCPPg++10.5.0Success280,815
Jun 21, 2026 19:42A_ShamanA_ShamanCPPg++10.5.0Success279,913+0.68 RP
Jun 21, 2026 19:38A_ShamanA_ShamanCPPg++10.5.0Success419,051
Jun 21, 2026 19:35A_ShamanA_ShamanCPPg++10.5.0Success429,118
Jun 21, 2026 04:30Zhou180Zhou180RUSTrust-1.95.0Error+869.17 RP
Jun 21, 2026 04:20Zhou180Zhou180RUSTrust-1.95.0Error
Jun 21, 2026 04:15Zhou180Zhou180RUSTrust-1.95.0Error
Jun 21, 2026 04:11Zhou180Zhou180RUSTrust-1.95.0Error
Jun 20, 2026 18:37A_ShamanA_ShamanCPPg++10.5.0Success408,455
Jun 20, 2026 18:33A_ShamanA_ShamanCPPg++10.5.0Success335,618
Jun 20, 2026 18:29A_ShamanA_ShamanCPPg++10.5.0Success400,050
Jun 20, 2026 18:22A_ShamanA_ShamanCPPg++10.5.0Success309,913
Jun 20, 2026 18:19A_ShamanA_ShamanCPPg++10.5.0Error+35.05 RP
Jun 20, 2026 17:47Zhou180Zhou180RUSTrust-1.95.0Error
Jun 20, 2026 17:40Zhou180Zhou180RUSTrust-1.95.0Error
Jun 20, 2026 17:14Zhou180Zhou180RUSTrust-1.95.0Error
Jun 20, 2026 17:09Zhou180Zhou180RUSTrust-1.95.0Error
Jun 20, 2026 17:05Zhou180Zhou180RUSTrust-1.95.0Error+17.78 RP
Jun 20, 2026 16:54Zhou180Zhou180RUSTrust-1.95.0Error
Jun 20, 2026 16:28Zhou180Zhou180RUSTrust-1.95.0Error+81.56 RP
Jun 20, 2026 15:45Zhou180Zhou180RUSTrust-1.95.0Success44,562
Jun 20, 2026 15:18Zhou180Zhou180RUSTrust-1.95.0Error
Jun 20, 2026 07:46A_ShamanA_ShamanCPPg++10.5.0Error
Jun 20, 2026 06:14Zhou180Zhou180RUSTrust-1.95.0Error
Jun 20, 2026 03:33Zhou180Zhou180RUSTrust-1.95.0Error
Jun 19, 2026 16:02Zhou180Zhou180RUSTrust-1.95.0Success44,374
Jun 19, 2026 15:48Zhou180Zhou180RUSTrust-1.95.0Error
Jun 19, 2026 15:08Victor MerckléVictor MerckléCPPg++14.2.0Error
Jun 19, 2026 15:03Victor MerckléVictor MerckléCPPg++14.2.0Error
Jun 19, 2026 14:58Victor MerckléVictor MerckléCPPg++14.2.0Error
Jun 19, 2026 14:56Zhou180Zhou180RUSTrust-1.95.0Error+1'390.36 RP
Jun 19, 2026 14:53Victor MerckléVictor MerckléCPPg++14.2.0Error
Jun 19, 2026 06:02Victor MerckléVictor MerckléCPPg++14.2.0Error
Jun 19, 2026 05:54Victor MerckléVictor MerckléCPPg++14.2.0Error
Jun 18, 2026 21:38Victor MerckléVictor MerckléCPPg++14.2.0Error
Jun 18, 2026 21:32Victor MerckléVictor MerckléCPPg++14.2.0Error
Jun 18, 2026 21:27Victor MerckléVictor MerckléCPPg++14.2.0Error
Jun 18, 2026 21:22Victor MerckléVictor MerckléCPPg++14.2.0Error
Jun 18, 2026 14:16Victor MerckléVictor MerckléCPPg++14.2.0Error
Jun 18, 2026 14:11Victor MerckléVictor MerckléCPPg++14.2.0Error
Jun 18, 2026 14:06Victor MerckléVictor MerckléCPPg++14.2.0Error
Jun 18, 2026 14:01Victor MerckléVictor MerckléCPPg++14.2.0Error
Jun 18, 2026 13:54Victor MerckléVictor MerckléCPPg++14.2.0Error
Jun 18, 2026 03:32Victor MerckléVictor MerckléCPPg++14.2.0Error
Jun 18, 2026 03:27Victor MerckléVictor MerckléCPPg++14.2.0Error
Jun 18, 2026 03:22Victor MerckléVictor MerckléCPPg++14.2.0Error
Jun 18, 2026 03:17Victor MerckléVictor MerckléCPPg++14.2.0Error
Jun 18, 2026 03:12Victor MerckléVictor MerckléCPPg++14.2.0Error
Jun 18, 2026 02:58Victor MerckléVictor MerckléCPPg++14.2.0Error
Jun 17, 2026 21:19Victor MerckléVictor MerckléCPPg++14.2.0Error
Jun 17, 2026 21:14Victor MerckléVictor MerckléCPPg++14.2.0Error
Jun 17, 2026 21:09Victor MerckléVictor MerckléCPPg++14.2.0Error
Jun 17, 2026 21:04Victor MerckléVictor MerckléCPPg++14.2.0Error
Jun 17, 2026 20:59Victor MerckléVictor MerckléCPPg++14.2.0Error
Jun 17, 2026 18:49Victor MerckléVictor MerckléCPPg++14.2.0Error
Jun 17, 2026 18:44Victor MerckléVictor MerckléCPPg++14.2.0Error
Jun 17, 2026 18:33Victor MerckléVictor MerckléCPPg++14.2.0Error
Jun 15, 2026 23:16Victor MerckléVictor MerckléZIG0.16.0Error
Jun 15, 2026 23:11Victor MerckléVictor MerckléZIG0.16.0Error
Jun 15, 2026 23:06Victor MerckléVictor MerckléZIG0.16.0Error
Jun 15, 2026 23:01Victor MerckléVictor MerckléZIG0.16.0Error
Jun 15, 2026 22:56Victor MerckléVictor MerckléZIG0.16.0Error
Jun 15, 2026 22:51Victor MerckléVictor MerckléZIG0.16.0Error
Jun 15, 2026 22:46Victor MerckléVictor MerckléZIG0.16.0Error
Jun 15, 2026 22:41Victor MerckléVictor MerckléZIG0.16.0Error
Jun 15, 2026 22:32Victor MerckléVictor MerckléZIG0.16.0Error
Jun 15, 2026 11:25Praveen KumarPraveen KumarGOgo1.26.2Success1,291,439+7.74 RP
Jun 13, 2026 18:26Victor MerckléVictor MerckléGOgo1.26.2Error
Jun 13, 2026 18:08Victor MerckléVictor MerckléGOgo1.26.2Success34,010
Jun 13, 2026 18:02Victor MerckléVictor MerckléGOgo1.26.2Error
Jun 13, 2026 17:45Victor MerckléVictor MerckléCSHARP10.0.7Error
Jun 13, 2026 17:40Victor MerckléVictor MerckléCSHARP10.0.7Error
Jun 13, 2026 17:24Victor MerckléVictor MerckléCSHARP10.0.7Error
Jun 13, 2026 01:04Victor MerckléVictor MerckléCSHARP10.0.7Error
Jun 13, 2026 00:47Victor MerckléVictor MerckléCSHARP10.0.7Error
Jun 13, 2026 00:28Victor MerckléVictor MerckléCSHARP10.0.7Error
Jun 13, 2026 00:09Victor MerckléVictor MerckléCSHARP10.0.7Error