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 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.0Success285,339+35.05 RP
Jun 20, 2026 17:47Zhou180Zhou180RUSTrust-1.95.0Success5,724
Jun 20, 2026 17:40Zhou180Zhou180RUSTrust-1.95.0Success5,913
Jun 20, 2026 17:14Zhou180Zhou180RUSTrust-1.95.0Success5,960
Jun 20, 2026 17:09Zhou180Zhou180RUSTrust-1.95.0Success5,781
Jun 20, 2026 17:05Zhou180Zhou180RUSTrust-1.95.0Success5,634+17.78 RP
Jun 20, 2026 16:54Zhou180Zhou180RUSTrust-1.95.0Success5,777
Jun 20, 2026 16:28Zhou180Zhou180RUSTrust-1.95.0Success5,691+81.56 RP
Jun 20, 2026 15:45Zhou180Zhou180RUSTrust-1.95.0Success44,562
Jun 20, 2026 15:18Zhou180Zhou180RUSTrust-1.95.0Success6,125
Jun 20, 2026 07:46A_ShamanA_ShamanCPPg++10.5.0Error
Jun 20, 2026 06:14Zhou180Zhou180RUSTrust-1.95.0Success6,146
Jun 20, 2026 03:33Zhou180Zhou180RUSTrust-1.95.0Error
Jun 19, 2026 16:02Zhou180Zhou180RUSTrust-1.95.0Success44,374
Jun 19, 2026 15:48Zhou180Zhou180RUSTrust-1.95.0Success6,093
Jun 19, 2026 15:08Victor MerckléVictor MerckléCPPg++14.2.0Success4,993
Jun 19, 2026 15:03Victor MerckléVictor MerckléCPPg++14.2.0Success3,272
Jun 19, 2026 14:58Victor MerckléVictor MerckléCPPg++14.2.0Success3,281
Jun 19, 2026 14:56Zhou180Zhou180RUSTrust-1.95.0Success5,968+1'390.36 RP
Jun 19, 2026 14:53Victor MerckléVictor MerckléCPPg++14.2.0Success3,244
Jun 19, 2026 06:02Victor MerckléVictor MerckléCPPg++14.2.0Success3,298
Jun 19, 2026 05:54Victor MerckléVictor MerckléCPPg++14.2.0Success3,317
Jun 18, 2026 21:38Victor MerckléVictor MerckléCPPg++14.2.0Success3,253
Jun 18, 2026 21:32Victor MerckléVictor MerckléCPPg++14.2.0Success3,839
Jun 18, 2026 21:27Victor MerckléVictor MerckléCPPg++14.2.0Success3,244
Jun 18, 2026 21:22Victor MerckléVictor MerckléCPPg++14.2.0Success5,258
Jun 18, 2026 14:16Victor MerckléVictor MerckléCPPg++14.2.0Success38,227
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.0Success3,322
Jun 18, 2026 13:54Victor MerckléVictor MerckléCPPg++14.2.0Success3,477
Jun 18, 2026 03:32Victor MerckléVictor MerckléCPPg++14.2.0Error
Jun 18, 2026 03:27Victor MerckléVictor MerckléCPPg++14.2.0Success4,968
Jun 18, 2026 03:22Victor MerckléVictor MerckléCPPg++14.2.0Success3,372
Jun 18, 2026 03:17Victor MerckléVictor MerckléCPPg++14.2.0Error
Jun 18, 2026 03:12Victor MerckléVictor MerckléCPPg++14.2.0Success3,289
Jun 18, 2026 02:58Victor MerckléVictor MerckléCPPg++14.2.0Success38,210
Jun 17, 2026 21:19Victor MerckléVictor MerckléCPPg++14.2.0Error
Jun 17, 2026 21:14Victor MerckléVictor MerckléCPPg++14.2.0Success3,348
Jun 17, 2026 21:09Victor MerckléVictor MerckléCPPg++14.2.0Success3,277
Jun 17, 2026 21:04Victor MerckléVictor MerckléCPPg++14.2.0Success3,539
Jun 17, 2026 20:59Victor MerckléVictor MerckléCPPg++14.2.0Success3,400
Jun 17, 2026 18:49Victor MerckléVictor MerckléCPPg++14.2.0Success38,379
Jun 17, 2026 18:44Victor MerckléVictor MerckléCPPg++14.2.0Success3,150+5.03 RP
Jun 17, 2026 18:33Victor MerckléVictor MerckléCPPg++14.2.0Error
Jun 15, 2026 23:16Victor MerckléVictor MerckléZIG0.16.0Success3,279
Jun 15, 2026 23:11Victor MerckléVictor MerckléZIG0.16.0Success3,253
Jun 15, 2026 23:06Victor MerckléVictor MerckléZIG0.16.0Success3,232
Jun 15, 2026 23:01Victor MerckléVictor MerckléZIG0.16.0Success5,241
Jun 15, 2026 22:56Victor MerckléVictor MerckléZIG0.16.0Success3,224+53.89 RP
Jun 15, 2026 22:51Victor MerckléVictor MerckléZIG0.16.0Error
Jun 15, 2026 22:46Victor MerckléVictor MerckléZIG0.16.0Success37,068
Jun 15, 2026 22:41Victor MerckléVictor MerckléZIG0.16.0Success3,341
Jun 15, 2026 22:32Victor MerckléVictor MerckléZIG0.16.0Success3,381
Jun 15, 2026 11:25Praveen KumarPraveen KumarGOgo1.26.2Success1,291,439+7.74 RP
Jun 13, 2026 18:26Victor MerckléVictor MerckléGOgo1.26.2Success35,943
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.7Success33,862
Jun 13, 2026 17:40Victor MerckléVictor MerckléCSHARP10.0.7Success33,543
Jun 13, 2026 17:24Victor MerckléVictor MerckléCSHARP10.0.7Success33,753
Jun 13, 2026 01:04Victor MerckléVictor MerckléCSHARP10.0.7Success36,567
Jun 13, 2026 00:47Victor MerckléVictor MerckléCSHARP10.0.7Success36,639
Jun 13, 2026 00:28Victor MerckléVictor MerckléCSHARP10.0.7Error
Jun 13, 2026 00:09Victor MerckléVictor MerckléCSHARP10.0.7Error
Jun 12, 2026 23:17Victor MerckléVictor MerckléCSHARP10.0.7Success5,139+582.76 RP
Jun 12, 2026 23:11Victor MerckléVictor MerckléGOgo1.26.2Success4,632
Jun 12, 2026 23:06Victor MerckléVictor MerckléGOgo1.26.2Error
Jun 12, 2026 22:51Victor MerckléVictor MerckléGOgo1.26.2Success4,679
Jun 12, 2026 22:46Victor MerckléVictor MerckléGOgo1.26.2Success4,575+920.77 RP
Jun 12, 2026 20:35Victor MerckléVictor MerckléRUSTrust-1.95.0Success3,227
Jun 12, 2026 20:03Victor MerckléVictor MerckléRUSTrust-1.95.0Success38,493
Jun 12, 2026 19:53Victor MerckléVictor MerckléRUSTrust-1.95.0Error
Jun 12, 2026 19:42Victor MerckléVictor MerckléRUSTrust-1.95.0Error
Jun 12, 2026 19:31Victor MerckléVictor MerckléRUSTrust-1.95.0Success3,298
Jun 12, 2026 13:01Victor MerckléVictor MerckléCPPg++14.2.0Success37,086
Jun 12, 2026 12:56Victor MerckléVictor MerckléCPPg++14.2.0Error
Jun 12, 2026 12:48Victor MerckléVictor MerckléCPPg++14.2.0Success3,336
Jun 12, 2026 12:43Victor MerckléVictor MerckléCPPg++14.2.0Error
Jun 12, 2026 12:38Victor MerckléVictor MerckléCPPg++14.2.0Error
Jun 12, 2026 12:31Victor MerckléVictor MerckléCPPg++14.2.0Error
Jun 12, 2026 12:26Victor MerckléVictor MerckléCPPg++14.2.0Success3,287
Jun 12, 2026 12:21Victor MerckléVictor MerckléCPPg++14.2.0Success3,358
Jun 12, 2026 12:16Victor MerckléVictor MerckléCPPg++14.2.0Success38,237+5.00 RP
Jun 11, 2026 14:09Victor MerckléVictor MerckléZIG0.16.0Success37,587
Jun 11, 2026 13:51Victor MerckléVictor MerckléZIG0.16.0Success3,281+153.50 RP
Jun 11, 2026 13:25Victor MerckléVictor MerckléZIG0.16.0Success3,455+928.56 RP
Jun 11, 2026 08:29Zhou180Zhou180RUSTrust-1.95.0Success35,058+11.90 RP
Jun 11, 2026 08:26Victor MerckléVictor MerckléZIG0.16.0Success10,468
Jun 11, 2026 08:22Weitao WanWeitao WanCPPg++14.2.0Success48,808+10.69 RP
Jun 11, 2026 08:17Weitao WanWeitao WanCPPclang++20.1.2Success51,496+19.97 RP
Jun 11, 2026 07:35Zhou180Zhou180RUSTrust-1.95.0Success36,584+18.28 RP
Jun 11, 2026 07:29Weitao WanWeitao WanCPPg++14.2.0Success57,400+48.44 RP
Jun 11, 2026 07:13Weitao WanWeitao WanCPPg++14.2.0Success82,008
Jun 11, 2026 07:05Zhou180Zhou180RUSTrust-1.95.0Success183,620
Jun 11, 2026 06:29Zhou180Zhou180RUSTrust-1.95.0Success185,091