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 21, 2026 15:07 | RUSTrust-1.94.0 | Success | 18,160 | ||
| Mar 21, 2026 15:06 | RUSTrust-1.94.0 | Success | 17,604 | ||
| Mar 21, 2026 15:04 | RUSTrust-1.94.0 | Success | 18,180 | ||
| Mar 21, 2026 15:02 | RUSTrust-1.94.0 | Success | 141,137 | ||
| Mar 21, 2026 15:00 | RUSTrust-1.94.0 | Success | 160,060 | ||
| Mar 21, 2026 14:58 | RUSTrust-1.94.0 | Success | 106,998 | ||
| Mar 21, 2026 14:25 | CPPg++13.3.0 | Success | 24,608 | ||
| Mar 21, 2026 14:24 | CPPclang++18.1.3 | Success | 20,925 | ||
| Mar 21, 2026 14:20 | CPPclang++18.1.3 | Success | 160,739 | ||
| Mar 21, 2026 14:11 | CPPg++13.3.0 | Success | 23,896 | ||
| Mar 21, 2026 14:11 | CPPg++13.3.0 | Success | 23,451 | ||
| Mar 21, 2026 13:18 | ZIG0.13.0 | Success | 2,182,635 | ||
| Mar 21, 2026 13:08 | ZIG0.13.0 | Error | |||
| Mar 21, 2026 13:04 | ZIG0.13.0 | Error | |||
| Mar 21, 2026 13:03 | ZIG0.13.0 | Error | |||
| Mar 21, 2026 13:01 | ZIG0.13.0 | Error | |||
| Mar 21, 2026 12:56 | ZIG0.13.0 | Error | |||
| Mar 21, 2026 12:47 | CSHARP9.0.14 | Success | 509,682 | ||
| Mar 21, 2026 12:45 | CSHARP9.0.14 | Error | |||
| Mar 21, 2026 12:36 | GOgo1.26.1 | Success | 435,846 | ||
| Mar 21, 2026 01:59 | CPPclang++18.1.3 | Success | 16,906 | ||
| Mar 21, 2026 00:32 | CPPclang++18.1.3 | Success | 19,533 | ||
| Mar 21, 2026 00:31 | CPPclang++18.1.3 | Error | |||
| Mar 21, 2026 00:29 | CPPclang++18.1.3 | Error | |||
| Mar 20, 2026 21:16 | CPPclang++18.1.3 | Success | 2,179+628.87 RP | ||
| Mar 20, 2026 21:16 | RUSTrust-1.94.0 | Success | 2,287+1'032.54 RP | ||
| Mar 20, 2026 20:30 | RUSTrust-1.94.0 | Success | 2,722+438.57 RP | ||
| Mar 20, 2026 20:10 | CPPclang++18.1.3 | Success | 2,394+137.30 RP | ||
| Mar 20, 2026 20:03 | CPPclang++18.1.3 | Success | 2,576 | ||
| Mar 20, 2026 19:57 | CPPclang++18.1.3 | Success | 2,434+150.77 RP | ||
| Mar 20, 2026 19:38 | CPPclang++18.1.3 | Success | 2,645 | ||
| Mar 20, 2026 19:36 | CPPclang++18.1.3 | Success | 2,483+136.34 RP | ||
| Mar 20, 2026 19:16 | CPPclang++18.1.3 | Success | 2,622 | ||
| Mar 20, 2026 18:59 | CPPg++13.3.0 | Success | 2,476+1'234.90 RP | ||
| Mar 20, 2026 16:52 | RUSTrust-1.94.0 | Success | 167,463 | ||
| Mar 20, 2026 16:46 | RUSTrust-1.94.0 | Success | 152,788 | ||
| Mar 20, 2026 15:04 | CPPclang++18.1.3 | Success | 16,493 | ||
| Mar 20, 2026 14:55 | CPPclang++18.1.3 | Error | |||
| Mar 20, 2026 14:54 | CPPclang++18.1.3 | Error | |||
| Mar 20, 2026 14:27 | RUSTrust-1.94.0 | Success | 198,300 | ||
| Mar 20, 2026 13:21 | CPPclang++18.1.3 | Success | 17,001 | ||
| Mar 20, 2026 13:21 | CPPclang++18.1.3 | Success | 16,646 | ||
| Mar 20, 2026 13:18 | CPPclang++18.1.3 | Success | 17,933 | ||
| Mar 20, 2026 13:18 | CPPclang++18.1.3 | Success | 16,132+1.99 RP | ||
| Mar 20, 2026 13:18 | CPPclang++18.1.3 | Success | 16,765 | ||
| Mar 20, 2026 13:18 | CPPclang++18.1.3 | Success | 17,216 | ||
| Mar 20, 2026 13:16 | CPPclang++18.1.3 | Success | 16,184+6.98 RP | ||
| Mar 20, 2026 13:16 | CPPg++13.3.0 | Success | 21,900 | ||
| Mar 20, 2026 13:16 | CPPclang++18.1.3 | Success | 16,726 | ||
| Mar 20, 2026 12:59 | CPPclang++18.1.3 | Success | 18,887 | ||
| Mar 20, 2026 12:50 | CPPclang++18.1.3 | Success | 18,771 | ||
| Mar 20, 2026 12:27 | CPPclang++18.1.3 | Success | 19,624 | ||
| Mar 20, 2026 12:21 | CPPclang++18.1.3 | Success | 19,109 | ||
| Mar 20, 2026 11:47 | CPPclang++18.1.3 | Error | |||
| Mar 20, 2026 11:45 | CPPclang++18.1.3 | Error | |||
| Mar 20, 2026 11:40 | CPPclang++18.1.3 | Success | 18,923 | ||
| Mar 20, 2026 11:35 | CPPclang++18.1.3 | Success | 18,158 | ||
| Mar 20, 2026 08:01 | CPPclang++18.1.3 | Success | 18,954 | ||
| Mar 20, 2026 07:47 | CPPclang++18.1.3 | Success | 20,705 | ||
| Mar 20, 2026 05:57 | CPPclang++18.1.3 | Success | 2,570+1'484.88 RP | ||
| Mar 20, 2026 05:37 | CPPclang++18.1.3 | Success | 3,176+344.84 RP | ||
| Mar 20, 2026 05:22 | CPPclang++18.1.3 | Success | 3,360+92.97 RP | ||
| Mar 20, 2026 05:22 | CPPclang++18.1.3 | Success | 3,439+58.82 RP | ||
| Mar 20, 2026 04:59 | CPPclang++18.1.3 | Success | 3,510+35.27 RP | ||
| Mar 20, 2026 04:57 | CPPg++13.3.0 | Success | 3,913 | ||
| Mar 20, 2026 04:47 | CPPclang++18.1.3 | Success | 3,554+102.23 RP | ||
| Mar 20, 2026 04:32 | CPPclang++18.1.3 | Success | 3,688+743.38 RP | ||
| Mar 20, 2026 04:25 | CPPclang++18.1.3 | Success | 5,081+117.64 RP | ||
| Mar 20, 2026 04:19 | CPPg++13.3.0 | Success | 5,404+181.03 RP | ||
| Mar 20, 2026 04:10 | CPPclang++18.1.3 | Success | 6,217 | ||
| Mar 20, 2026 04:03 | CPPclang++18.1.3 | Success | 6,699 | ||
| Mar 20, 2026 03:05 | CPPclang++18.1.3 | Success | 17,864 | ||
| Mar 20, 2026 02:28 | CPPclang++18.1.3 | Success | 18,825 | ||
| Mar 20, 2026 02:25 | CPPclang++18.1.3 | Error | |||
| Mar 20, 2026 02:17 | CPPclang++18.1.3 | Success | 18,858 | ||
| Mar 19, 2026 22:19 | CPPclang++18.1.3 | Success | 19,286 | ||
| Mar 19, 2026 21:56 | CPPclang++18.1.3 | Success | 19,164 | ||
| Mar 19, 2026 20:13 | CPPclang++18.1.3 | Success | 18,979 | ||
| Mar 19, 2026 20:10 | CPPclang++18.1.3 | Success | 18,349 | ||
| Mar 19, 2026 20:08 | CPPclang++18.1.3 | Success | 18,989 | ||
| Mar 19, 2026 20:07 | CPPclang++18.1.3 | Success | 17,955 | ||
| Mar 19, 2026 19:58 | CPPclang++18.1.3 | Success | 19,209 | ||
| Mar 19, 2026 19:45 | CPPclang++18.1.3 | Success | 19,013 | ||
| Mar 19, 2026 19:37 | CPPclang++18.1.3 | Success | 17,596 | ||
| Mar 19, 2026 19:27 | CPPclang++18.1.3 | Success | 18,141 | ||
| Mar 19, 2026 19:04 | CPPclang++18.1.3 | Success | 18,957 | ||
| Mar 19, 2026 18:58 | CPPclang++18.1.3 | Success | 19,015 | ||
| Mar 19, 2026 16:46 | CPPclang++18.1.3 | Success | 20,158 | ||
| Mar 19, 2026 16:46 | CPPg++13.3.0 | Success | 22,131 | ||
| Mar 19, 2026 16:40 | CPPg++13.3.0 | Error | |||
| Mar 19, 2026 16:39 | CPPg++13.3.0 | Success | 23,528 | ||
| Mar 19, 2026 16:39 | CPPg++13.3.0 | Success | 21,915 | ||
| Mar 19, 2026 16:14 | CPPclang++18.1.3 | Success | 18,793 | ||
| Mar 19, 2026 16:14 | CPPg++13.3.0 | Success | 21,749 | ||
| Mar 19, 2026 16:13 | CPPg++13.3.0 | Success | 21,181 | ||
| Mar 19, 2026 16:13 | CPPclang++18.1.3 | Success | 17,460 | ||
| Mar 19, 2026 16:06 | CPPclang++18.1.3 | Error | |||
| Mar 19, 2026 16:03 | CPPg++13.3.0 | Error | |||
| Mar 19, 2026 16:03 | CPPclang++18.1.3 | Error | |||
| Mar 19, 2026 15:45 | CPPclang++18.1.3 | Success | 20,293 |