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 | |
|---|---|---|---|---|---|
| Aug 30, 2026 21:23 | CPPclang++20.1.2 | Error | +272.86 RP | ||
| Aug 30, 2026 21:22 | CPPg++14.2.0 | Error | |||
| Aug 30, 2026 21:17 | CPPclang++20.1.2 | Error | |||
| Aug 30, 2026 21:12 | CPPclang++20.1.2 | Error | |||
| Aug 30, 2026 21:00 | CPPg++14.2.0 | Error | |||
| Aug 30, 2026 21:00 | CPPclang++20.1.2 | Error | |||
| Aug 30, 2026 20:47 | CPPclang++18.1.3 | Error | +373.47 RP | ||
| Aug 30, 2026 20:10 | CPPg++14.2.0 | Error | |||
| Aug 30, 2026 19:18 | CPPclang++18.1.3 | Error | |||
| Aug 30, 2026 19:15 | CPPg++14.2.0 | Error | |||
| Aug 30, 2026 19:12 | CPPg++14.2.0 | Error | +63.31 RP | ||
| Aug 30, 2026 19:06 | CPPclang++18.1.3 | Error | +1'248.45 RP | ||
| Aug 30, 2026 19:04 | CPPg++14.2.0 | Error | |||
| Aug 30, 2026 19:01 | CPPg++14.2.0 | Error | |||
| Aug 30, 2026 16:22 | CSHARP9.0.15 | Error | |||
| Aug 30, 2026 16:21 | GOgo1.26.2 | Error | |||
| Aug 30, 2026 16:21 | ZIG0.15.1 | Error | |||
| Aug 30, 2026 16:14 | RUSTrust-1.95.0 | Error | |||
| Aug 30, 2026 15:57 | CPPclang++20.1.2 | Error | |||
| Aug 30, 2026 15:55 | CPPclang++20.1.2 | Error | |||
| Aug 30, 2026 15:54 | CPPclang++20.1.2 | Error | +518.92 RP | ||
| Aug 30, 2026 15:49 | CPPclang++20.1.2 | Error | +1'891.12 RP | ||
| Aug 29, 2026 17:28 | CPPg++14.2.0 | Error | |||
| Aug 29, 2026 17:07 | CPPg++14.2.0 | Error | |||
| Aug 29, 2026 16:47 | CPPg++14.2.0 | Error | |||
| Aug 29, 2026 16:29 | CPPg++14.2.0 | Error | |||
| Aug 29, 2026 16:17 | CPPg++14.2.0 | Error | |||
| Aug 29, 2026 14:24 | CPPg++14.2.0 | Error | +714.43 RP | ||
| Aug 29, 2026 13:45 | CPPg++14.2.0 | Error | +76.14 RP | ||
| Aug 29, 2026 13:37 | CPPg++14.2.0 | Error | |||
| Aug 29, 2026 12:52 | CPPclang++20.1.2 | Error | |||
| Aug 29, 2026 12:35 | CPPg++14.2.0 | Error | +162.95 RP | ||
| Aug 29, 2026 11:47 | CPPg++14.2.0 | Error | |||
| Aug 29, 2026 11:26 | CPPg++14.2.0 | Error | |||
| Aug 29, 2026 11:06 | CPPg++14.2.0 | Error | |||
| Aug 29, 2026 10:45 | CPPg++14.2.0 | Error | |||
| Aug 29, 2026 10:39 | CPPg++14.2.0 | Error | |||
| Aug 29, 2026 10:33 | CPPg++14.2.0 | Error | |||
| Aug 29, 2026 10:22 | CPPg++14.2.0 | Error | |||
| Aug 29, 2026 09:04 | CPPg++14.2.0 | Error | |||
| Aug 29, 2026 08:54 | CPPg++14.2.0 | Error | |||
| Aug 23, 2026 14:41 | CPPg++14.2.0 | Success | 2,096 | ||
| Aug 23, 2026 03:37 | CPPg++14.2.0 | Success | 2,081+29.83 RP | ||
| Aug 23, 2026 03:32 | CPPg++14.2.0 | Success | 2,339 | ||
| Aug 23, 2026 03:23 | CPPg++14.2.0 | Success | 2,094+89.51 RP | ||
| Aug 23, 2026 03:15 | CPPg++14.2.0 | Success | 2,373 | ||
| Aug 23, 2026 03:13 | CPPg++14.2.0 | Error | +195.69 RP | ||
| Aug 23, 2026 03:09 | CPPg++14.2.0 | Success | 2,620 | ||
| Aug 23, 2026 03:07 | CPPg++14.2.0 | Success | 2,400 | ||
| Aug 23, 2026 02:53 | CPPg++14.2.0 | Success | 2,536 | ||
| Aug 23, 2026 02:45 | CPPg++14.2.0 | Success | 2,777 | ||
| Aug 23, 2026 02:43 | CPPg++14.2.0 | Error | +366.63 RP | ||
| Aug 23, 2026 02:28 | CPPg++14.2.0 | Success | 3,004 | ||
| Aug 23, 2026 02:26 | CPPg++14.2.0 | Success | 2,555 | ||
| Aug 22, 2026 15:10 | CPPg++14.2.0 | Success | 3,399 | ||
| Aug 22, 2026 03:58 | CPPg++14.2.0 | Success | 2,912 | ||
| Aug 21, 2026 22:58 | CPPg++14.2.0 | Success | 2,479 | ||
| Aug 21, 2026 22:48 | CPPg++14.2.0 | Success | 2,972 | ||
| Aug 21, 2026 22:07 | CPPg++14.2.0 | Error | +556.11 RP | ||
| Aug 21, 2026 22:05 | CPPg++14.2.0 | Error | +214.15 RP | ||
| Aug 21, 2026 21:29 | CPPg++14.2.0 | Success | 3,209 | ||
| Aug 21, 2026 21:13 | CPPg++14.2.0 | Success | 2,982+13.44 RP | ||
| Aug 21, 2026 21:05 | CPPg++14.2.0 | Success | 3,082 | ||
| Aug 21, 2026 20:58 | CPPg++14.2.0 | Error | +409.18 RP | ||
| Aug 21, 2026 20:49 | CPPg++14.2.0 | Error | +667.36 RP | ||
| Aug 21, 2026 20:42 | CPPg++14.2.0 | Error | +667.55 RP | ||
| Aug 21, 2026 20:31 | CPPg++14.2.0 | Error | +563.28 RP | ||
| Aug 21, 2026 20:23 | CPPg++14.2.0 | Success | 9,962 | ||
| Aug 21, 2026 20:22 | CPPg++14.2.0 | Error | +786.21 RP | ||
| Aug 21, 2026 20:09 | CPPg++14.2.0 | Success | 40,581+5.49 RP | ||
| Aug 21, 2026 20:09 | CPPg++14.2.0 | Success | 41,505+73.03 RP | ||
| Aug 21, 2026 19:44 | CPPg++14.2.0 | Success | 59,557+134.35 RP | ||
| Aug 21, 2026 19:27 | CPPg++14.2.0 | Success | 297,989+33.56 RP | ||
| Aug 20, 2026 02:38 | CPPg++14.2.0 | Error | |||
| Aug 19, 2026 17:35 | CPPg++14.2.0 | Error | |||
| Aug 19, 2026 17:15 | CPPg++14.2.0 | Error | |||
| Aug 19, 2026 16:44 | CPPg++14.2.0 | Success | 3,251 | ||
| Aug 19, 2026 15:51 | CPPg++14.2.0 | Error | |||
| Aug 19, 2026 15:38 | CPPg++14.2.0 | Error | |||
| Aug 19, 2026 15:31 | CPPg++14.2.0 | Error | |||
| Aug 19, 2026 15:19 | CPPg++14.2.0 | Error | |||
| Aug 19, 2026 15:04 | CPPg++14.2.0 | Error | |||
| Aug 19, 2026 14:45 | CPPg++14.2.0 | Error | |||
| Aug 19, 2026 14:42 | CPPg++14.2.0 | Error | |||
| Aug 19, 2026 14:39 | CPPg++14.2.0 | Error | |||
| Aug 19, 2026 14:35 | CPPg++14.2.0 | Error | |||
| Aug 19, 2026 14:02 | CPPg++14.2.0 | Error | |||
| Aug 19, 2026 13:58 | CPPg++14.2.0 | Error | |||
| Aug 19, 2026 13:45 | CPPg++14.2.0 | Error | |||
| Aug 19, 2026 13:37 | CPPg++14.2.0 | Error | |||
| Aug 19, 2026 13:29 | CPPg++14.2.0 | Error | |||
| Aug 19, 2026 10:36 | CPPg++14.2.0 | Error | |||
| Aug 19, 2026 10:18 | CPPg++14.2.0 | Error | |||
| Aug 19, 2026 09:45 | CPPg++14.2.0 | Error | |||
| Aug 19, 2026 09:16 | CPPg++14.2.0 | Error | |||
| Aug 19, 2026 08:45 | CPPg++14.2.0 | Error | |||
| Aug 19, 2026 08:10 | CPPg++14.2.0 | Error | |||
| Aug 19, 2026 07:50 | CPPg++14.2.0 | Error | |||
| Aug 19, 2026 07:02 | CPPg++14.2.0 | Error | |||
| Aug 19, 2026 06:45 | CPPg++14.2.0 | Error | +5.00 RP |