Cross-Margin Liquidation Engine 
Simulate a cross-margin derivatives engine: process trades, track account equity, and liquidate undercollateralized accounts as fast as possible.
Accounts are funded with a USD deposit and trade instruments whose prices change over time. When a price update causes an account’s equity to fall below 1% of its total position notional, the account must be liquidated.
Definitions
- Account equity =
balance + Σ(size_i * price_i) - Σ(total_paid_i) - Total position notional =
Σ(|size_i| * price_i) - Total paid for instrument
i= signed sum oftrade_size * price_at_trade_timeacross all trades - Margin rule: liquidate if
equity < total_notional / 100after any price update
Input
One command per line on STDIN:
a <balance>– create account with USD balance (IDs start at0, incrementing)p <instrument_idx> <price>– set/update instrument price (0-indexed)t <account_idx> <instrument_idx> <size>– tradesize(signed) at current price- Final line:
<account_idx>– query this account and terminate
Output
On each price update, liquidate all accounts violating the margin rule. For each liquidation, print:
liquidate <account_id> <equity> <position_notional>
Liquidation order: largest total position notional first, then account ID descending as tie-breaker. Liquidated accounts have their balance and positions cleared.
For the final query, print <equity> <notional> for the requested account.
Constraints
- Accounts: <= 100,000
- Instruments: <= 1,000
- Price range: 100 to 1,000,000
- Trade size range: 1 to 10,000
Example
a 100
p 0 100
t 0 0 10
p 0 90
0
Output:
liquidate 0 0 900
0 0
| Date | Author | Language | Status | Score | |
|---|---|---|---|---|---|
| Jun 20, 2026 16:16 | CPPg++10.5.0 | Success | 121,450 | ||
| Jun 20, 2026 16:13 | CPPg++10.5.0 | Success | 129,541 | ||
| Jun 20, 2026 16:11 | CPPg++10.5.0 | Success | 114,684 | ||
| Jun 20, 2026 16:07 | CPPg++10.5.0 | Success | 123,196 | ||
| Jun 20, 2026 16:04 | CPPg++10.5.0 | Success | 118,713 | ||
| Jun 20, 2026 11:20 | CPPg++10.5.0 | Success | 103,823 | ||
| Jun 20, 2026 11:17 | CPPg++10.5.0 | Success | 110,439 | ||
| Jun 20, 2026 11:11 | CPPg++10.5.0 | Success | 150,637 | ||
| Jun 20, 2026 11:06 | CPPg++10.5.0 | Success | 100,773+3.70 RP | ||
| Jun 20, 2026 11:04 | CPPg++10.5.0 | Success | 104,681+95.53 RP | ||
| Jun 20, 2026 07:41 | CPPg++10.5.0 | Error | |||
| Jun 19, 2026 11:41 | CPPclang++18.1.3 | Success | 1,444 | ||
| Jun 19, 2026 11:36 | CPPclang++18.1.3 | Success | 1,613 | ||
| Jun 19, 2026 11:31 | CPPclang++18.1.3 | Success | 1,467 | ||
| Jun 19, 2026 11:22 | CPPclang++18.1.3 | Success | 1,577 | ||
| Jun 19, 2026 11:12 | CPPclang++18.1.3 | Success | 3,683 | ||
| Jun 19, 2026 03:23 | CPPclang++18.1.3 | Success | 1,503 | ||
| Jun 19, 2026 03:17 | CPPclang++18.1.3 | Success | 2,387 | ||
| Jun 19, 2026 03:10 | CPPclang++18.1.3 | Success | 1,536 | ||
| Jun 19, 2026 02:59 | CPPclang++18.1.3 | Success | 1,490 | ||
| Jun 19, 2026 02:53 | CPPclang++18.1.3 | Success | 1,488 | ||
| Jun 19, 2026 02:48 | CPPclang++18.1.3 | Success | 1,467 | ||
| Jun 19, 2026 02:43 | CPPclang++18.1.3 | Error | |||
| Jun 18, 2026 19:12 | CPPclang++18.1.3 | Success | 1,473 | ||
| Jun 18, 2026 19:07 | CPPclang++18.1.3 | Success | 1,423 | ||
| Jun 18, 2026 19:02 | CPPclang++18.1.3 | Success | 1,447 | ||
| Jun 18, 2026 18:57 | CPPclang++18.1.3 | Success | 1,470 | ||
| Jun 18, 2026 18:52 | CPPclang++18.1.3 | Success | 1,472 | ||
| Jun 18, 2026 18:47 | CPPclang++18.1.3 | Success | 1,537 | ||
| Jun 18, 2026 18:42 | CPPclang++18.1.3 | Success | 1,524 | ||
| Jun 18, 2026 18:37 | CPPclang++18.1.3 | Success | 1,383+356.94 RP | ||
| Jun 18, 2026 18:31 | CPPclang++18.1.3 | Success | 1,483 | ||
| Jun 18, 2026 11:28 | CPPclang++18.1.3 | Success | 1,472 | ||
| Jun 18, 2026 11:23 | CPPclang++18.1.3 | Success | 1,418+301.74 RP | ||
| Jun 18, 2026 11:18 | CPPclang++18.1.3 | Success | 1,449+365.83 RP | ||
| Jun 18, 2026 10:58 | CPPclang++18.1.3 | Success | 1,508 | ||
| Jun 18, 2026 01:11 | CPPclang++18.1.3 | Error | |||
| Jun 18, 2026 01:04 | CPPclang++18.1.3 | Error | |||
| Jun 18, 2026 00:59 | CPPclang++18.1.3 | Success | 1,533 | ||
| Jun 18, 2026 00:54 | CPPclang++18.1.3 | Success | 1,603 | ||
| Jun 18, 2026 00:49 | CPPclang++18.1.3 | Success | 1,605 | ||
| Jun 17, 2026 13:06 | CPPclang++18.1.3 | Success | 1,616 | ||
| Jun 17, 2026 13:01 | CPPclang++18.1.3 | Success | 1,564 | ||
| Jun 17, 2026 12:56 | CPPclang++18.1.3 | Success | 1,584 | ||
| Jun 17, 2026 12:51 | CPPclang++18.1.3 | Success | 1,505 | ||
| Jun 17, 2026 12:46 | CPPclang++18.1.3 | Success | 1,515 | ||
| Jun 17, 2026 12:41 | CPPclang++18.1.3 | Success | 1,541 | ||
| Jun 17, 2026 12:36 | CPPclang++18.1.3 | Success | 1,546 | ||
| Jun 17, 2026 12:31 | CPPclang++18.1.3 | Success | 1,502 | ||
| Jun 17, 2026 12:19 | CPPclang++18.1.3 | Success | 1,497+4.46 RP | ||
| Jun 17, 2026 12:14 | CPPclang++18.1.3 | Success | 1,530 | ||
| Jun 17, 2026 12:09 | CPPclang++18.1.3 | Success | 1,597 | ||
| Jun 17, 2026 12:04 | CPPclang++18.1.3 | Error | |||
| Jun 13, 2026 18:19 | ZIG0.16.0 | Success | 1,480+860.66 RP | ||
| Jun 13, 2026 18:10 | ZIG0.16.0 | Success | 1,782 | ||
| Jun 13, 2026 17:16 | CSHARP10.0.7 | Success | 1,544+139.55 RP | ||
| Jun 13, 2026 17:11 | CSHARP10.0.7 | Success | 1,612 | ||
| Jun 13, 2026 16:47 | CSHARP10.0.7 | Success | 1,578+703.33 RP | ||
| Jun 13, 2026 15:39 | GOgo1.26.2 | Success | 1,557 | ||
| Jun 13, 2026 15:32 | GOgo1.26.2 | Success | 1,555+41.09 RP | ||
| Jun 13, 2026 15:14 | GOgo1.26.2 | Success | 1,565+167.00 RP | ||
| Jun 13, 2026 15:08 | GOgo1.26.2 | Success | 1,607+364.54 RP | ||
| Jun 11, 2026 23:45 | CPPclang++18.1.3 | Error | |||
| Jun 11, 2026 23:40 | CPPclang++18.1.3 | Success | 1,581 | ||
| Jun 11, 2026 23:35 | CPPclang++18.1.3 | Success | 1,527 | ||
| Jun 11, 2026 23:30 | CPPclang++18.1.3 | Success | 1,500 | ||
| Jun 11, 2026 23:25 | CPPclang++18.1.3 | Success | 1,505 | ||
| Jun 11, 2026 23:19 | CPPclang++18.1.3 | Success | 1,581 | ||
| Jun 11, 2026 23:14 | CPPclang++18.1.3 | Success | 1,545 | ||
| Jun 11, 2026 23:09 | CPPclang++18.1.3 | Success | 1,509 | ||
| Jun 11, 2026 23:00 | CPPclang++18.1.3 | Success | 1,578 | ||
| Jun 11, 2026 22:51 | CPPclang++18.1.3 | Success | 1,539 | ||
| Jun 11, 2026 22:47 | CPPclang++18.1.3 | Success | 1,590 | ||
| Jun 11, 2026 22:38 | CPPclang++18.1.3 | Success | 1,579 | ||
| Jun 11, 2026 22:30 | CPPclang++18.1.3 | Success | 1,558 | ||
| Jun 10, 2026 08:42 | CPPclang++18.1.3 | Success | 1,582 | ||
| Jun 10, 2026 08:27 | CPPclang++18.1.3 | Success | 1,602 | ||
| Jun 10, 2026 08:22 | CPPclang++18.1.3 | Error | |||
| Jun 10, 2026 08:14 | CPPclang++18.1.3 | Success | 1,574 | ||
| Jun 10, 2026 08:09 | CPPclang++18.1.3 | Success | 1,522 | ||
| Jun 10, 2026 08:04 | CPPclang++18.1.3 | Success | 1,591 | ||
| Jun 10, 2026 07:58 | CPPclang++18.1.3 | Success | 1,602 | ||
| Jun 10, 2026 07:53 | CPPclang++18.1.3 | Success | 1,573 | ||
| Jun 10, 2026 07:48 | CPPclang++18.1.3 | Success | 1,498+26.68 RP | ||
| Jun 10, 2026 07:40 | CPPclang++18.1.3 | Success | 1,543 | ||
| Jun 10, 2026 07:35 | CPPclang++18.1.3 | Success | 1,788 | ||
| Jun 10, 2026 07:29 | CPPclang++18.1.3 | Success | 1,518 | ||
| Jun 10, 2026 07:24 | CPPclang++18.1.3 | Success | 1,685 | ||
| Jun 10, 2026 07:17 | CPPclang++18.1.3 | Success | 1,542 | ||
| Jun 10, 2026 07:10 | CPPclang++18.1.3 | Success | 1,516 | ||
| Jun 10, 2026 07:04 | CPPclang++18.1.3 | Success | 1,516 | ||
| Jun 10, 2026 06:58 | CPPclang++18.1.3 | Success | 1,526 | ||
| Jun 10, 2026 06:52 | CPPclang++18.1.3 | Success | 1,672 | ||
| Jun 10, 2026 06:43 | CPPclang++18.1.3 | Success | 1,544 | ||
| Jun 8, 2026 17:17 | RUSTrust-1.95.0 | Success | 1,509+558.94 RP | ||
| Jun 8, 2026 17:12 | RUSTrust-1.95.0 | Error | |||
| Jun 8, 2026 08:44 | CPPclang++18.1.3 | Success | 1,624 | ||
| Jun 8, 2026 08:35 | CPPclang++18.1.3 | Success | 1,539 | ||
| Jun 8, 2026 08:26 | CPPclang++18.1.3 | Success | 1,603 | ||
| Jun 8, 2026 08:15 | CPPclang++18.1.3 | Success | 1,730 |