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 31, 2026 10:52 | CPPg++13.3.0 | Error | |||
| Mar 31, 2026 10:49 | CPPg++13.3.0 | Error | |||
| Mar 31, 2026 10:47 | CPPg++13.3.0 | Error | |||
| Mar 31, 2026 10:45 | CPPg++13.3.0 | Error | |||
| Mar 31, 2026 10:41 | CPPclang++18.1.3 | Error | |||
| Mar 31, 2026 10:38 | CPPclang++18.1.3 | Error | |||
| Mar 31, 2026 10:36 | CPPclang++18.1.3 | Error | |||
| Mar 31, 2026 10:31 | CPPclang++18.1.3 | Error | |||
| Mar 31, 2026 10:29 | CPPclang++18.1.3 | Error | |||
| Mar 31, 2026 10:21 | CPPclang++18.1.3 | Error | |||
| Mar 31, 2026 10:17 | CPPclang++18.1.3 | Success | 18,605 | ||
| Mar 31, 2026 10:16 | CPPg++13.3.0 | Success | 21,054 | ||
| Mar 31, 2026 00:41 | CPPg++13.3.0 | Success | 7,612 | ||
| Mar 31, 2026 00:24 | CPPg++13.3.0 | Success | 6,227 | ||
| Mar 31, 2026 00:21 | CPPg++13.3.0 | Success | 6,295 | ||
| Mar 31, 2026 00:17 | CPPg++13.3.0 | Success | 6,143 | ||
| Mar 31, 2026 00:13 | CPPg++13.3.0 | Success | 5,874 | ||
| Mar 30, 2026 23:54 | CPPclang++18.1.3 | Success | 17,527 | ||
| Mar 30, 2026 22:10 | CPPclang++18.1.3 | Error | |||
| Mar 30, 2026 01:06 | RUSTrust-1.94.1 | Success | 19,160 | ||
| Mar 28, 2026 11:50 | CPPg++13.3.0 | Error | |||
| Mar 28, 2026 01:56 | RUSTrust-1.94.1 | Success | 5,093+179.04 RP | ||
| Mar 27, 2026 21:02 | RUSTrust-1.94.1 | Success | 126,310 | ||
| Mar 27, 2026 20:20 | RUSTrust-1.94.0 | Success | 16,535 | ||
| Mar 27, 2026 20:16 | RUSTrust-1.94.0 | Success | 153,489 | ||
| Mar 27, 2026 20:15 | RUSTrust-1.94.1 | Success | 155,999 | ||
| Mar 27, 2026 20:13 | RUSTrust-1.94.1 | Success | 155,389 | ||
| Mar 27, 2026 20:07 | RUSTrust-1.94.1 | Success | 162,063 | ||
| Mar 27, 2026 17:09 | RUSTrust-1.94.0 | Success | 17,426 | ||
| Mar 27, 2026 16:23 | CPPclang++18.1.3 | Success | 15,827 | ||
| Mar 27, 2026 15:25 | CPPclang++18.1.3 | Success | 21,592 | ||
| Mar 27, 2026 15:18 | RUSTrust-1.94.1 | Success | 153,801 | ||
| Mar 27, 2026 14:13 | CPPclang++18.1.3 | Success | 19,025 | ||
| Mar 27, 2026 14:12 | CPPg++13.3.0 | Success | 19,291 | ||
| Mar 26, 2026 13:04 | CPPg++13.3.0 | Success | 19,835 | ||
| Mar 26, 2026 12:17 | CPPclang++18.1.3 | Success | 14,659 | ||
| Mar 26, 2026 12:15 | CPPclang++18.1.3 | Success | 21,260 | ||
| Mar 26, 2026 12:08 | CPPclang++18.1.3 | Success | 15,552 | ||
| Mar 26, 2026 11:47 | CPPclang++18.1.3 | Success | 15,793 | ||
| Mar 26, 2026 10:58 | RUSTrust-1.94.0 | Success | 19,056 | ||
| Mar 25, 2026 21:53 | RUSTrust-1.94.0 | Success | 136,944 | ||
| Mar 25, 2026 21:07 | ZIG0.13.0 | Success | 16,950 | ||
| Mar 25, 2026 20:55 | ZIG0.13.0 | Success | 29,461 | ||
| Mar 25, 2026 20:03 | ZIG0.13.0 | Error | |||
| Mar 25, 2026 19:04 | ZIG0.13.0 | Success | 397,472 | ||
| Mar 25, 2026 18:49 | ZIG0.13.0 | Error | |||
| Mar 25, 2026 11:43 | CPPclang++18.1.3 | Success | 17,594 | ||
| Mar 25, 2026 11:21 | CPPclang++18.1.3 | Success | 17,332 | ||
| Mar 25, 2026 11:15 | CPPclang++18.1.3 | Success | 27,945 | ||
| Mar 25, 2026 07:42 | CPPg++13.3.0 | Success | 26,822 | ||
| Mar 25, 2026 07:21 | CPPclang++18.1.3 | Success | 15,029 | ||
| Mar 25, 2026 07:19 | CPPclang++18.1.3 | Success | 16,879 | ||
| Mar 25, 2026 07:14 | CPPclang++18.1.3 | Success | 28,514 | ||
| Mar 25, 2026 04:16 | GOgo1.26.1 | Success | 25,293 | ||
| Mar 25, 2026 03:32 | CPPclang++18.1.3 | Success | 16,719 | ||
| Mar 25, 2026 03:06 | CPPg++13.3.0 | Success | 17,254 | ||
| Mar 25, 2026 02:16 | GOgo1.26.1 | Error | |||
| Mar 25, 2026 01:20 | CPPg++13.3.0 | Success | 26,469 | ||
| Mar 25, 2026 00:47 | RUSTrust-1.94.0 | Success | 16,175 | ||
| Mar 24, 2026 23:32 | CPPclang++18.1.3 | Success | 15,941 | ||
| Mar 24, 2026 22:53 | RUSTrust-1.94.0 | Success | 170,741 | ||
| Mar 24, 2026 22:27 | RUSTrust-1.94.0 | Success | 159,786 | ||
| Mar 24, 2026 22:16 | RUSTrust-1.94.0 | Success | 312,515 | ||
| Mar 24, 2026 22:06 | CPPclang++18.1.3 | Success | 26,698 | ||
| Mar 24, 2026 22:06 | CPPclang++18.1.3 | Success | 16,259 | ||
| Mar 24, 2026 22:03 | CPPclang++18.1.3 | Error | |||
| Mar 24, 2026 14:19 | RUSTrust-1.94.0 | Success | 16,909 | ||
| Mar 24, 2026 13:09 | CPPclang++18.1.3 | Success | 16,728 | ||
| Mar 24, 2026 12:50 | RUSTrust-1.94.0 | Success | 142,303 | ||
| Mar 24, 2026 07:08 | CPPclang++18.1.3 | Success | 15,608 | ||
| Mar 24, 2026 06:26 | RUSTrust-1.94.0 | Success | 49,142 | ||
| Mar 24, 2026 06:23 | GOgo1.26.1 | Success | 53,374 | ||
| Mar 24, 2026 04:49 | RUSTrust-1.94.0 | Success | 7,045 | ||
| Mar 24, 2026 00:14 | CPPclang++18.1.3 | Success | 16,380 | ||
| Mar 23, 2026 20:36 | CPPclang++18.1.3 | Success | 35,889 | ||
| Mar 23, 2026 18:37 | CPPclang++18.1.3 | Success | 38,050 | ||
| Mar 23, 2026 01:42 | RUSTrust-1.94.0 | Success | 7,601 | ||
| Mar 23, 2026 01:39 | CPPclang++18.1.3 | Success | 5,604+104.61 RP | ||
| Mar 22, 2026 19:47 | GOgo1.26.1 | Success | 403,093 | ||
| Mar 22, 2026 15:18 | CPPclang++18.1.3 | Success | 16,873 | ||
| Mar 22, 2026 15:10 | CPPclang++18.1.3 | Success | 17,628 | ||
| Mar 22, 2026 13:51 | CPPclang++18.1.3 | Success | 17,582 | ||
| Mar 22, 2026 12:21 | CPPclang++18.1.3 | Success | 16,399 | ||
| Mar 22, 2026 10:54 | CPPclang++18.1.3 | Success | 16,583 | ||
| Mar 22, 2026 07:46 | CPPclang++18.1.3 | Success | 19,471 | ||
| Mar 21, 2026 23:41 | CPPclang++18.1.3 | Success | 16,213 | ||
| Mar 21, 2026 23:40 | CPPclang++18.1.3 | Success | 16,979 | ||
| Mar 21, 2026 22:13 | CPPclang++18.1.3 | Success | 14,598+50.99 RP | ||
| Mar 21, 2026 22:12 | CPPclang++18.1.3 | Success | 15,772+14.15 RP | ||
| Mar 21, 2026 19:54 | CPPclang++18.1.3 | Success | 2,301 | ||
| Mar 21, 2026 19:53 | CPPclang++18.1.3 | Success | 2,296 | ||
| Mar 21, 2026 19:49 | CPPg++13.3.0 | Success | 2,611 | ||
| Mar 21, 2026 19:45 | CPPclang++18.1.3 | Success | 2,319 | ||
| Mar 21, 2026 19:40 | CPPclang++18.1.3 | Success | 2,295+180.19 RP | ||
| Mar 21, 2026 18:24 | RUSTrust-1.94.0 | Success | 18,904 | ||
| Mar 21, 2026 16:08 | RUSTrust-1.94.0 | Success | 20,062 | ||
| Mar 21, 2026 15:15 | RUSTrust-1.94.0 | Success | 19,833 | ||
| Mar 21, 2026 15:13 | RUSTrust-1.94.0 | Success | 21,132 | ||
| Mar 21, 2026 15:10 | RUSTrust-1.94.0 | Success | 20,643 | ||
| Mar 21, 2026 15:08 | RUSTrust-1.94.0 | Success | 18,406 |