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 | |
|---|---|---|---|---|---|
| Nov 21, 2025 12:39 | GOgo1.25.4 | Error | |||
| Nov 21, 2025 12:36 | GOgo1.25.4 | Error | |||
| Nov 21, 2025 12:19 | GOgo1.25.4 | Error | |||
| Nov 21, 2025 01:17 | CPPg++13.3.0 | Success | 84,355 | ||
| Nov 21, 2025 01:12 | CPPg++13.3.0 | Error | |||
| Nov 21, 2025 00:11 | CPPg++13.3.0 | Success | 60,772 | ||
| Nov 21, 2025 00:08 | CPPclang++18.1.3 | Success | 53,023 | ||
| Nov 21, 2025 00:08 | CPPg++13.3.0 | Success | 53,666 | ||
| Nov 21, 2025 00:05 | CPPg++13.3.0 | Success | 58,038 | ||
| Nov 21, 2025 00:03 | CPPclang++18.1.3 | Success | 59,357 | ||
| Nov 20, 2025 23:53 | CPPclang++18.1.3 | Success | 52,147+67.72 RP | ||
| Nov 20, 2025 23:51 | CPPclang++18.1.3 | Success | 80,614+15.28 RP | ||
| Nov 20, 2025 23:47 | CPPg++13.3.0 | Success | 91,939+24.02 RP | ||
| Nov 20, 2025 23:43 | CPPg++13.3.0 | Error | |||
| Nov 8, 2025 15:37 | CPPg++13.3.0 | Success | 48,500+4.13 RP | ||
| Nov 8, 2025 15:33 | CPPg++13.3.0 | Success | 52,014 | ||
| Nov 8, 2025 15:31 | CPPg++13.3.0 | Error | |||
| Nov 8, 2025 15:30 | CPPg++13.3.0 | Error | |||
| Nov 8, 2025 15:29 | CPPg++13.3.0 | Error | |||
| Nov 8, 2025 15:29 | CPPg++13.3.0 | Error | |||
| Nov 8, 2025 15:11 | CPPg++13.3.0 | Success | 49,492+27.83 RP | ||
| Nov 8, 2025 15:08 | CPPg++13.3.0 | Success | 63,393 | ||
| Nov 8, 2025 14:26 | CPPg++13.3.0 | Success | 76,435 | ||
| Nov 8, 2025 14:24 | CPPg++13.3.0 | Error | |||
| Nov 8, 2025 14:20 | CPPg++13.3.0 | Success | 67,901 | ||
| Nov 8, 2025 14:14 | CPPg++13.3.0 | Success | 59,731 | ||
| Nov 8, 2025 14:12 | CPPg++13.3.0 | Success | 57,398+26.05 RP | ||
| Nov 8, 2025 14:08 | CPPg++13.3.0 | Success | 67,491+16.76 RP | ||
| Nov 8, 2025 12:55 | CPPg++13.3.0 | Success | 85,081 | ||
| Nov 8, 2025 12:49 | CPPg++13.3.0 | Success | 88,845 | ||
| Nov 8, 2025 12:47 | CPPg++13.3.0 | Error | |||
| Nov 7, 2025 22:29 | CPPg++13.3.0 | Success | 79,125 | ||
| Nov 7, 2025 22:21 | CPPg++13.3.0 | Success | 76,100+75.15 RP | ||
| Nov 6, 2025 23:00 | CPPg++13.3.0 | Success | 430,346 | ||
| Nov 6, 2025 22:42 | CPPg++13.3.0 | Error | |||
| Nov 6, 2025 22:38 | CPPg++13.3.0 | Success | 177,757+4.54 RP | ||
| Nov 6, 2025 22:36 | CPPg++13.3.0 | Success | 253,770 | ||
| Nov 4, 2025 08:04 | GOgo1.25.3 | Success | 392,264 | ||
| Nov 4, 2025 02:35 | RUSTrust-1.90.0 | Error | |||
| Nov 4, 2025 02:31 | RUSTrust-1.90.0 | Error | |||
| Nov 1, 2025 00:02 | CPPg++13.3.0 | Success | 16,707+538.71 RP | ||
| Oct 25, 2025 10:50 | RUSTrust-1.90.0 | Success | 205,816+48.59 RP | ||
| Oct 18, 2025 15:39 | CPPg++13.3.0 | Success | 193,380+2.00 RP | ||
| Oct 18, 2025 15:35 | CPPg++13.3.0 | Success | 201,175+0.77 RP | ||
| Oct 18, 2025 15:31 | CPPg++13.3.0 | Success | 209,984 | ||
| Oct 18, 2025 15:31 | CPPg++13.3.0 | Success | 204,354+1.87 RP | ||
| Oct 18, 2025 15:30 | CPPg++13.3.0 | Success | 223,918 | ||
| Oct 18, 2025 15:29 | CPPg++13.3.0 | Success | 263,673 | ||
| Oct 18, 2025 15:18 | CPPg++13.3.0 | Success | 324,849 | ||
| Oct 18, 2025 15:16 | CPPg++13.3.0 | Success | 301,084 | ||
| Oct 18, 2025 14:36 | CPPg++13.3.0 | Success | 302,157 | ||
| Oct 18, 2025 14:34 | CPPg++13.3.0 | Success | 296,857 | ||
| Oct 18, 2025 14:24 | CPPg++13.3.0 | Success | 262,107 | ||
| Oct 18, 2025 14:23 | CPPg++13.3.0 | Success | 264,404 | ||
| Oct 18, 2025 13:05 | CPPg++13.3.0 | Success | 269,127 | ||
| Oct 18, 2025 13:03 | CPPg++13.3.0 | Error | |||
| Oct 18, 2025 13:01 | CPPg++13.3.0 | Error | |||
| Oct 18, 2025 13:00 | CPPg++13.3.0 | Error | |||
| Oct 18, 2025 12:56 | CPPg++13.3.0 | Error | |||
| Oct 18, 2025 10:57 | CPPg++13.3.0 | Success | 296,036 | ||
| Oct 18, 2025 10:56 | CPPg++13.3.0 | Success | 292,968 | ||
| Oct 18, 2025 10:55 | CPPg++13.3.0 | Success | 328,938 | ||
| Oct 18, 2025 10:52 | CPPg++13.3.0 | Success | 283,913 | ||
| Oct 18, 2025 10:50 | CPPg++13.3.0 | Success | 320,825 | ||
| Oct 18, 2025 10:48 | CPPg++13.3.0 | Success | 292,363 | ||
| Oct 18, 2025 10:45 | CPPg++13.3.0 | Success | 334,873 | ||
| Oct 18, 2025 10:43 | CPPg++13.3.0 | Success | 317,768 | ||
| Oct 18, 2025 10:36 | RUSTrust-1.90.0 | Success | 212,481+20.98 RP | ||
| Oct 18, 2025 10:05 | CPPg++13.3.0 | Error | |||
| Oct 17, 2025 22:39 | CPPg++13.3.0 | Error | |||
| Oct 17, 2025 22:37 | CPPg++13.3.0 | Error | |||
| Oct 17, 2025 22:30 | CPPg++13.3.0 | Error | |||
| Oct 17, 2025 21:25 | CPPg++13.3.0 | Error | |||
| Oct 17, 2025 11:26 | RUSTrust-1.90.0 | Success | 190,798+4.74 RP | ||
| Oct 17, 2025 09:32 | RUSTrust-1.90.0 | Success | 209,770+47.67 RP | ||
| Oct 16, 2025 10:13 | CPPg++13.3.0 | Error | |||
| Oct 16, 2025 10:07 | CPPg++13.3.0 | Success | 383,325+26.09 RP | ||
| Oct 16, 2025 10:00 | CPPg++13.3.0 | Error | |||
| Oct 16, 2025 09:54 | CPPg++13.3.0 | Error | |||
| Oct 16, 2025 09:44 | CPPg++13.3.0 | Error | |||
| Oct 16, 2025 09:43 | CPPg++13.3.0 | Error | |||
| Oct 13, 2025 22:56 | CPPg++13.3.0 | Success | 113,267 | ||
| Oct 13, 2025 22:53 | CPPg++13.3.0 | Error | |||
| Oct 13, 2025 16:33 | CPPg++13.3.0 | Success | 17,148 | ||
| Oct 13, 2025 16:28 | CPPg++13.3.0 | Success | 15,043+29.07 RP | ||
| Oct 13, 2025 16:24 | CPPg++13.3.0 | Success | 15,731+18.48 RP | ||
| Oct 13, 2025 16:20 | CPPg++13.3.0 | Success | 224,126 | ||
| Oct 13, 2025 16:08 | CPPg++13.3.0 | Error | |||
| Oct 13, 2025 16:06 | CPPg++13.3.0 | Error | |||
| Oct 13, 2025 07:03 | CPPg++13.3.0 | Error | |||
| Oct 13, 2025 07:02 | CPPg++13.3.0 | Error | |||
| Oct 13, 2025 06:43 | CPPg++13.3.0 | Success | 98,971+49.55 RP | ||
| Oct 13, 2025 03:26 | RUSTrust-1.90.0 | Success | 464,723 | ||
| Oct 13, 2025 00:58 | CPPg++13.3.0 | Success | 18,914 | ||
| Oct 13, 2025 00:17 | CPPg++13.3.0 | Success | 16,299 | ||
| Oct 13, 2025 00:15 | CPPg++13.3.0 | Success | 16,202+4.16 RP | ||
| Oct 13, 2025 00:12 | CPPclang++18.1.3 | Success | 17,316 | ||
| Oct 13, 2025 00:11 | CPPg++13.3.0 | Success | 16,312+244.23 RP | ||
| Oct 12, 2025 23:11 | CPPg++13.3.0 | Success | 194,224+1.17 RP | ||
| Oct 12, 2025 23:08 | CPPg++13.3.0 | Success | 27,114+143.66 RP |