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 | |
|---|---|---|---|---|---|
| Dec 30, 2025 20:32 | RUSTrust-1.85.1 | Success | 3,221 | ||
| Dec 30, 2025 20:31 | RUSTrust-1.92.0 | Success | 3,932 | ||
| Dec 30, 2025 20:30 | RUSTrust-1.85.1 | Success | 3,176 | ||
| Dec 30, 2025 20:07 | RUSTrust-1.92.0 | Success | 4,331 | ||
| Dec 30, 2025 19:17 | RUSTrust-1.92.0 | Success | 4,221 | ||
| Dec 30, 2025 19:11 | CPPg++13.3.0 | Success | 3,551 | ||
| Dec 30, 2025 18:35 | CPPg++13.3.0 | Success | 3,861 | ||
| Dec 30, 2025 17:51 | CPPg++13.3.0 | Success | 3,683 | ||
| Dec 30, 2025 17:03 | CPPg++13.3.0 | Success | 3,814 | ||
| Dec 30, 2025 16:05 | CPPg++13.3.0 | Success | 3,611 | ||
| Dec 30, 2025 05:49 | CPPg++13.3.0 | Success | 4,009 | ||
| Dec 30, 2025 05:42 | CPPg++13.3.0 | Success | 4,030 | ||
| Dec 30, 2025 05:34 | CPPg++13.3.0 | Success | 3,747 | ||
| Dec 30, 2025 05:32 | CPPg++13.3.0 | Success | 3,605 | ||
| Dec 30, 2025 05:29 | CPPclang++18.1.3 | Success | 3,594 | ||
| Dec 30, 2025 05:22 | CPPg++13.3.0 | Success | 3,388+121.16 RP | ||
| Dec 30, 2025 05:22 | RUSTrust-1.92.0 | Success | 4,022 | ||
| Dec 30, 2025 04:54 | RUSTrust-1.85.1 | Error | |||
| Dec 30, 2025 04:48 | CPPg++13.3.0 | Success | 3,459+154.56 RP | ||
| Dec 30, 2025 04:18 | RUSTrust-1.85.1 | Success | 3,091+109.08 RP | ||
| Dec 30, 2025 02:20 | CPPg++13.3.0 | Success | 3,554+50.22 RP | ||
| Dec 30, 2025 01:29 | CPPg++13.3.0 | Success | 3,938 | ||
| Dec 30, 2025 00:56 | CPPg++13.3.0 | Success | 3,901 | ||
| Dec 30, 2025 00:31 | RUSTrust-1.85.1 | Success | 3,144+117.18 RP | ||
| Dec 29, 2025 15:56 | CPPg++13.3.0 | Success | 3,763 | ||
| Dec 29, 2025 15:56 | CPPg++13.3.0 | Success | 3,705 | ||
| Dec 29, 2025 15:42 | CPPg++13.3.0 | Success | 3,760 | ||
| Dec 29, 2025 15:42 | CPPg++13.3.0 | Success | 3,688 | ||
| Dec 29, 2025 15:38 | CPPg++13.3.0 | Success | 3,874 | ||
| Dec 29, 2025 15:29 | CPPg++13.3.0 | Success | 3,628 | ||
| Dec 29, 2025 15:25 | CPPg++13.3.0 | Success | 3,682 | ||
| Dec 29, 2025 15:08 | CPPg++13.3.0 | Success | 3,608 | ||
| Dec 29, 2025 15:03 | CPPg++13.3.0 | Success | 3,593 | ||
| Dec 29, 2025 15:01 | CPPg++13.3.0 | Success | 3,624 | ||
| Dec 29, 2025 14:52 | ZIG0.14.0 | Success | 15,368+214.40 RP | ||
| Dec 29, 2025 14:49 | CPPg++13.3.0 | Success | 3,816 | ||
| Dec 29, 2025 14:49 | CPPg++13.3.0 | Success | 3,874 | ||
| Dec 29, 2025 14:37 | CPPg++13.3.0 | Success | 3,716 | ||
| Dec 29, 2025 14:31 | CPPg++13.3.0 | Success | 3,792 | ||
| Dec 29, 2025 14:27 | CPPg++13.3.0 | Success | 3,759 | ||
| Dec 29, 2025 13:37 | RUSTrust-1.85.1 | Success | 3,311 | ||
| Dec 29, 2025 13:24 | RUSTrust-1.85.1 | Success | 3,606 | ||
| Dec 29, 2025 06:48 | CPPg++13.3.0 | Success | 3,836 | ||
| Dec 29, 2025 06:45 | CPPg++13.3.0 | Success | 3,671 | ||
| Dec 29, 2025 06:44 | CPPg++13.3.0 | Success | 3,779 | ||
| Dec 29, 2025 06:37 | CPPg++13.3.0 | Success | 4,250 | ||
| Dec 29, 2025 06:37 | CPPg++13.3.0 | Success | 3,666 | ||
| Dec 29, 2025 06:37 | CPPg++13.3.0 | Success | 3,606 | ||
| Dec 29, 2025 06:37 | CPPg++13.3.0 | Success | 3,649 | ||
| Dec 29, 2025 06:37 | CPPg++13.3.0 | Success | 3,746 | ||
| Dec 29, 2025 06:37 | CPPg++13.3.0 | Success | 3,968 | ||
| Dec 29, 2025 06:17 | CPPg++13.3.0 | Success | 3,651 | ||
| Dec 29, 2025 06:16 | CPPg++13.3.0 | Success | 3,667 | ||
| Dec 29, 2025 06:16 | RUSTrust-1.92.0 | Success | 3,942 | ||
| Dec 29, 2025 06:16 | RUSTrust-1.92.0 | Success | 4,538 | ||
| Dec 29, 2025 06:15 | CPPg++13.3.0 | Success | 3,713 | ||
| Dec 29, 2025 06:13 | CPPg++13.3.0 | Success | 3,800 | ||
| Dec 29, 2025 06:10 | CPPg++13.3.0 | Success | 3,586+360.76 RP | ||
| Dec 29, 2025 06:08 | CPPg++13.3.0 | Success | 3,974 | ||
| Dec 29, 2025 06:04 | CPPg++13.3.0 | Success | 3,834+76.42 RP | ||
| Dec 29, 2025 05:47 | CPPg++13.3.0 | Success | 3,891+34.12 RP | ||
| Dec 29, 2025 05:41 | ZIG0.14.0 | Success | 23,371 | ||
| Dec 29, 2025 05:16 | CPPg++13.3.0 | Success | 4,342 | ||
| Dec 29, 2025 04:39 | CPPg++13.3.0 | Success | 3,917+304.59 RP | ||
| Dec 29, 2025 04:35 | RUSTrust-1.92.0 | Success | 4,661 | ||
| Dec 29, 2025 04:34 | CPPg++13.3.0 | Success | 4,452 | ||
| Dec 29, 2025 04:33 | RUSTrust-1.92.0 | Success | 4,626 | ||
| Dec 29, 2025 04:29 | RUSTrust-1.92.0 | Success | 4,158+8.64 RP | ||
| Dec 29, 2025 04:03 | CPPg++13.3.0 | Success | 4,173+17.67 RP | ||
| Dec 29, 2025 04:02 | CPPg++13.3.0 | Success | 4,516 | ||
| Dec 29, 2025 03:40 | ZIG0.14.0 | Success | 81,361 | ||
| Dec 29, 2025 03:36 | RUSTrust-1.92.0 | Success | 4,311 | ||
| Dec 29, 2025 03:32 | ZIG0.14.0 | Success | 80,677 | ||
| Dec 29, 2025 03:29 | RUSTrust-1.92.0 | Success | 4,255 | ||
| Dec 29, 2025 03:22 | RUSTrust-1.85.1 | Error | |||
| Dec 29, 2025 03:20 | ZIG0.14.0 | Success | 80,519 | ||
| Dec 29, 2025 03:19 | ZIG0.14.0 | Success | 82,445 | ||
| Dec 29, 2025 03:05 | RUSTrust-1.85.1 | Success | 5,147 | ||
| Dec 29, 2025 02:34 | RUSTrust-1.85.1 | Error | |||
| Dec 29, 2025 02:17 | RUSTrust-1.85.1 | Success | 3,203+284.68 RP | ||
| Dec 29, 2025 02:03 | ZIG0.14.0 | Success | 24,046 | ||
| Dec 29, 2025 01:53 | RUSTrust-1.85.1 | Success | 3,356+1'926.76 RP | ||
| Dec 29, 2025 01:41 | RUSTrust-1.85.1 | Success | 6,524 | ||
| Dec 29, 2025 01:37 | RUSTrust-1.85.1 | Success | 9,828 | ||
| Dec 29, 2025 01:36 | RUSTrust-1.85.1 | Success | 8,688 | ||
| Dec 29, 2025 01:35 | RUSTrust-1.85.1 | Success | 8,954 | ||
| Dec 29, 2025 01:28 | RUSTrust-1.85.1 | Success | 8,783 | ||
| Dec 29, 2025 01:18 | RUSTrust-1.92.0 | Success | 4,174+377.73 RP | ||
| Dec 29, 2025 01:12 | RUSTrust-1.85.1 | Success | 12,625 | ||
| Dec 29, 2025 01:12 | CPPg++13.3.0 | Success | 4,203+736.63 RP | ||
| Dec 29, 2025 00:50 | RUSTrust-1.85.1 | Success | 654,742 | ||
| Dec 29, 2025 00:50 | RUSTrust-1.85.1 | Success | 7,108 | ||
| Dec 29, 2025 00:48 | RUSTrust-1.85.1 | Success | 158,703 | ||
| Dec 29, 2025 00:45 | RUSTrust-1.85.1 | Success | 292,762 | ||
| Dec 29, 2025 00:36 | RUSTrust-1.92.0 | Success | 5,295 | ||
| Dec 29, 2025 00:14 | CPPg++13.3.0 | Success | 5,032+42.51 RP | ||
| Dec 29, 2025 00:13 | RUSTrust-1.92.0 | Success | 4,915+218.56 RP | ||
| Dec 29, 2025 00:13 | CPPclang++18.1.3 | Success | 5,838 | ||
| Dec 29, 2025 00:13 | RUSTrust-1.92.0 | Success | 5,848 | ||
| Dec 29, 2025 00:12 | CPPg++13.3.0 | Success | 5,301 |