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 | |
|---|---|---|---|---|---|
| Mar 17, 2026 13:10 | CPPg++13.3.0 | Error | |||
| Mar 17, 2026 13:00 | CPPg++13.3.0 | Error | |||
| Mar 17, 2026 13:00 | CPPg++13.3.0 | Error | |||
| Mar 17, 2026 13:00 | CPPg++13.3.0 | Error | |||
| Mar 17, 2026 12:42 | CPPg++13.3.0 | Error | |||
| Mar 17, 2026 12:42 | CPPg++13.3.0 | Error | |||
| Mar 17, 2026 12:42 | CPPg++13.3.0 | Error | |||
| Mar 17, 2026 12:34 | CPPg++13.3.0 | Error | |||
| Mar 17, 2026 12:34 | CPPg++13.3.0 | Error | |||
| Mar 17, 2026 12:34 | CPPg++13.3.0 | Error | |||
| Mar 17, 2026 12:30 | CPPg++13.3.0 | Error | |||
| Mar 17, 2026 12:30 | CPPg++13.3.0 | Error | |||
| Mar 17, 2026 12:27 | CPPg++13.3.0 | Error | |||
| Mar 17, 2026 12:27 | CPPg++13.3.0 | Error | |||
| Mar 17, 2026 12:27 | CPPg++13.3.0 | Error | |||
| Mar 17, 2026 12:26 | CPPg++13.3.0 | Error | |||
| Mar 17, 2026 12:26 | CPPg++13.3.0 | Error | |||
| Mar 17, 2026 12:25 | CPPg++13.3.0 | Error | |||
| Mar 17, 2026 12:23 | CPPg++13.3.0 | Error | |||
| Mar 17, 2026 12:23 | CPPg++13.3.0 | Error | |||
| Mar 17, 2026 12:23 | CPPg++13.3.0 | Error | |||
| Mar 17, 2026 12:08 | CPPg++13.3.0 | Error | |||
| Mar 17, 2026 12:08 | CPPg++13.3.0 | Error | |||
| Mar 17, 2026 12:03 | CPPg++13.3.0 | Error | |||
| Mar 17, 2026 12:03 | CPPg++13.3.0 | Error | |||
| Mar 17, 2026 12:00 | CPPg++13.3.0 | Error | |||
| Mar 17, 2026 11:57 | CPPg++13.3.0 | Error | |||
| Mar 17, 2026 11:57 | CPPg++13.3.0 | Error | |||
| Mar 17, 2026 11:54 | CPPg++13.3.0 | Error | |||
| Mar 17, 2026 11:48 | CPPclang++18.1.3 | Error | |||
| Mar 17, 2026 11:45 | CPPclang++18.1.3 | Error | |||
| Mar 17, 2026 11:39 | CPPclang++18.1.3 | Error | |||
| Mar 17, 2026 11:35 | CPPclang++18.1.3 | Success | 32,063 | ||
| Mar 17, 2026 11:28 | CPPclang++18.1.3 | Error | |||
| Mar 17, 2026 11:28 | CPPclang++18.1.3 | Error | |||
| Mar 17, 2026 11:21 | CPPclang++18.1.3 | Error | |||
| Mar 16, 2026 16:25 | CPPg++13.3.0 | Error | |||
| Mar 16, 2026 16:24 | CPPg++13.3.0 | Error | |||
| Mar 16, 2026 16:22 | CPPg++13.3.0 | Error | |||
| Mar 16, 2026 16:21 | CPPg++13.3.0 | Error | |||
| Mar 16, 2026 16:19 | CPPg++13.3.0 | Error | |||
| Mar 16, 2026 16:08 | CPPg++13.3.0 | Error | |||
| Mar 16, 2026 16:02 | CPPg++13.3.0 | Error | |||
| Mar 16, 2026 16:00 | CPPg++13.3.0 | Error | |||
| Mar 16, 2026 15:58 | CPPg++13.3.0 | Error | |||
| Mar 16, 2026 15:58 | CPPg++13.3.0 | Error | |||
| Mar 16, 2026 15:19 | CPPg++13.3.0 | Success | 27,157 | ||
| Mar 16, 2026 15:00 | CPPg++13.3.0 | Success | 21,583+124.47 RP | ||
| Mar 16, 2026 14:58 | CPPg++13.3.0 | Success | 33,138 | ||
| Mar 16, 2026 14:48 | CPPg++13.3.0 | Success | 90,317 | ||
| Mar 16, 2026 14:03 | CPPg++13.3.0 | Error | |||
| Mar 16, 2026 14:01 | CPPg++13.3.0 | Error | |||
| Mar 16, 2026 13:43 | CPPg++13.3.0 | Success | 45,753 | ||
| Mar 16, 2026 13:26 | CPPg++13.3.0 | Error | |||
| Mar 16, 2026 13:23 | CPPg++13.3.0 | Error | |||
| Mar 16, 2026 11:12 | CPPclang++18.1.3 | Success | 174,341 | ||
| Mar 16, 2026 09:27 | CPPclang++18.1.3 | Success | 118,906 | ||
| Mar 16, 2026 09:24 | CPPg++13.3.0 | Success | 53,125 | ||
| Mar 15, 2026 23:39 | CPPclang++18.1.3 | Success | 29,511+6.12 RP | ||
| Mar 15, 2026 23:10 | CPPclang++18.1.3 | Success | 34,125 | ||
| Mar 15, 2026 22:40 | CPPclang++18.1.3 | Success | 49,638 | ||
| Mar 15, 2026 22:33 | CPPclang++18.1.3 | Success | 30,054+12.29 RP | ||
| Mar 15, 2026 22:15 | CPPclang++18.1.3 | Success | 51,540 | ||
| Mar 15, 2026 21:54 | CPPclang++18.1.3 | Success | 36,689 | ||
| Mar 15, 2026 21:33 | CPPg++13.3.0 | Success | 39,232 | ||
| Mar 15, 2026 04:57 | RUSTrust-1.94.0 | Success | 3,747 | ||
| Mar 15, 2026 03:59 | CPPg++13.3.0 | Success | 3,636 | ||
| Mar 15, 2026 03:15 | RUSTrust-1.90.0 | Success | 24,109+192.03 RP | ||
| Mar 15, 2026 03:01 | RUSTrust-1.90.0 | Success | 44,893+175.63 RP | ||
| Mar 14, 2026 16:55 | CPPclang++18.1.3 | Success | 31,207+101.24 RP | ||
| Mar 14, 2026 14:44 | CPPclang++18.1.3 | Success | 49,527 | ||
| Mar 14, 2026 14:42 | CPPclang++18.1.3 | Success | 45,621+6.01 RP | ||
| Mar 14, 2026 13:39 | CPPclang++18.1.3 | Success | 56,858 | ||
| Mar 14, 2026 13:33 | CPPclang++18.1.3 | Success | 46,907+55.69 RP | ||
| Mar 14, 2026 13:17 | CPPg++13.3.0 | Success | 64,975 | ||
| Mar 14, 2026 13:14 | CPPclang++18.1.3 | Success | 63,491+96.76 RP | ||
| Mar 14, 2026 11:46 | CPPclang++18.1.3 | Success | 164,626+7.08 RP | ||
| Mar 14, 2026 11:39 | CPPg++13.3.0 | Error | |||
| Mar 14, 2026 11:30 | CPPg++13.3.0 | Success | 186,336+6.04 RP | ||
| Mar 14, 2026 11:18 | CPPg++13.3.0 | Success | 209,960+7.02 RP | ||
| Mar 14, 2026 11:00 | CPPg++13.3.0 | Success | 251,926 | ||
| Mar 13, 2026 23:30 | CPPclang++18.1.3 | Success | 5,988 | ||
| Mar 13, 2026 23:21 | CPPclang++18.1.3 | Success | 5,953+63.79 RP | ||
| Mar 13, 2026 22:52 | CPPclang++18.1.3 | Success | 6,393 | ||
| Mar 13, 2026 22:38 | CPPclang++18.1.3 | Error | |||
| Mar 13, 2026 22:37 | CPPclang++18.1.3 | Success | 6,835 | ||
| Mar 13, 2026 22:33 | CPPclang++18.1.3 | Error | |||
| Mar 13, 2026 22:30 | CPPclang++18.1.3 | Error | |||
| Mar 13, 2026 22:22 | CPPclang++18.1.3 | Success | 6,188+84.87 RP | ||
| Mar 13, 2026 22:13 | CPPclang++18.1.3 | Error | |||
| Mar 13, 2026 19:40 | CPPg++13.3.0 | Success | 14,809 | ||
| Mar 13, 2026 19:35 | CPPg++13.3.0 | Error | |||
| Mar 13, 2026 18:39 | CPPg++13.3.0 | Success | 14,466+499.51 RP | ||
| Mar 13, 2026 17:48 | CPPg++13.3.0 | Error | |||
| Mar 13, 2026 17:10 | CPPg++13.3.0 | Success | 266,159 | ||
| Mar 13, 2026 12:06 | CPPg++13.3.0 | Success | 246,246+34.11 RP | ||
| Mar 13, 2026 11:46 | RUSTrust-1.94.0 | Success | 1,537,397+6.50 RP | ||
| Mar 12, 2026 16:44 | RUSTrust-1.94.0 | Success | 82,190 | ||
| Mar 12, 2026 16:41 | RUSTrust-1.94.0 | Error | |||
| Mar 12, 2026 16:36 | RUSTrust-1.94.0 | Success | 68,724+23.96 RP |