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 16, 2026 18:03 | CPPclang++19.1.1 | Error | |||
| Aug 16, 2026 18:03 | CPPclang++20.1.2 | Error | |||
| Aug 16, 2026 18:03 | CPPg++11.5.0 | Error | |||
| Aug 16, 2026 18:03 | CPPg++12.4.0 | Error | |||
| Aug 16, 2026 18:03 | CPPg++13.3.0 | Error | |||
| Aug 16, 2026 17:52 | CPPg++14.2.0 | Error | |||
| Aug 16, 2026 17:52 | CPPg++14.2.0 | Error | |||
| Aug 16, 2026 17:51 | CPPg++14.2.0 | Error | |||
| Aug 16, 2026 17:44 | CPPg++14.2.0 | Error | |||
| Aug 16, 2026 17:44 | CPPg++14.2.0 | Error | |||
| Aug 16, 2026 17:43 | CPPg++14.2.0 | Error | +1'191.20 RP | ||
| Aug 16, 2026 17:37 | CPPg++14.2.0 | Error | |||
| Aug 16, 2026 17:37 | CPPg++14.2.0 | Error | |||
| Aug 16, 2026 17:37 | CPPg++14.2.0 | Error | +334.61 RP | ||
| Aug 16, 2026 17:37 | CPPg++14.2.0 | Error | |||
| Aug 16, 2026 15:27 | CPPg++14.2.0 | Error | |||
| Aug 16, 2026 15:27 | CPPg++14.2.0 | Error | |||
| Aug 16, 2026 15:27 | CPPg++14.2.0 | Error | +45.56 RP | ||
| Aug 16, 2026 15:22 | CPPg++14.2.0 | Error | |||
| Aug 16, 2026 15:22 | CPPg++14.2.0 | Error | |||
| Aug 16, 2026 15:22 | CPPg++14.2.0 | Error | |||
| Aug 16, 2026 15:13 | CPPg++14.2.0 | Error | |||
| Aug 16, 2026 15:13 | CPPg++14.2.0 | Error | +5'843.35 RP | ||
| Aug 16, 2026 15:00 | CPPg++14.2.0 | Error | |||
| Aug 16, 2026 14:14 | CPPg++14.2.0 | Success | 33,854+4.84 RP | ||
| Aug 16, 2026 14:14 | CPPg++14.2.0 | Error | |||
| Aug 16, 2026 14:14 | CPPg++14.2.0 | Error | |||
| Aug 16, 2026 13:28 | CPPg++14.2.0 | Error | |||
| Aug 16, 2026 13:20 | CPPg++14.2.0 | Success | 34,418+3.80 RP | ||
| Aug 16, 2026 13:17 | CPPg++14.2.0 | Error | +286.75 RP | ||
| Aug 16, 2026 13:07 | CPPg++14.2.0 | Error | |||
| Aug 16, 2026 13:07 | CPPg++14.2.0 | Error | |||
| Aug 16, 2026 01:00 | CPPclang++20.1.2 | Error | +55.10 RP | ||
| Aug 16, 2026 00:47 | CPPclang++20.1.2 | Error | +94.68 RP | ||
| Aug 15, 2026 06:31 | CPPclang++20.1.2 | Error | +252.68 RP | ||
| Aug 15, 2026 06:23 | CPPclang++20.1.2 | Error | +178.00 RP | ||
| Aug 15, 2026 06:19 | CPPclang++20.1.2 | Error | +141.37 RP | ||
| Aug 15, 2026 06:06 | CPPclang++20.1.2 | Error | +235.37 RP | ||
| Aug 15, 2026 00:42 | CPPclang++20.1.2 | Error | +1'949.14 RP | ||
| Aug 14, 2026 17:01 | CPPclang++20.1.2 | Error | +1'152.02 RP | ||
| Aug 14, 2026 16:15 | CPPclang++20.1.2 | Error | +4'268.03 RP | ||
| Aug 14, 2026 14:24 | CPPclang++18.1.3 | Error | |||
| Aug 13, 2026 10:09 | CPPg++14.2.0 | Success | 266,847+37.47 RP | ||
| Aug 3, 2026 11:00 | CPPclang++18.1.3 | Error | |||
| Aug 3, 2026 10:50 | CPPclang++18.1.3 | Error | |||
| Aug 3, 2026 10:39 | CPPg++14.2.0 | Error | |||
| Aug 3, 2026 10:32 | CPPg++14.2.0 | Error | |||
| Aug 3, 2026 03:40 | CPPg++14.2.0 | Error | |||
| Aug 3, 2026 03:35 | CPPclang++18.1.3 | Error | |||
| Aug 3, 2026 03:30 | CPPg++14.2.0 | Error | |||
| Aug 3, 2026 03:20 | CPPg++14.2.0 | Error | |||
| Aug 3, 2026 03:15 | CPPg++14.2.0 | Error | |||
| Aug 3, 2026 03:10 | CPPg++14.2.0 | Error | |||
| Aug 3, 2026 03:02 | CPPg++14.2.0 | Error | +5.00 RP | ||
| Aug 2, 2026 20:31 | CPPg++14.2.0 | Error | |||
| Aug 2, 2026 20:26 | CPPg++14.2.0 | Error | |||
| Aug 2, 2026 20:18 | CPPg++14.2.0 | Error | |||
| Jul 31, 2026 06:16 | CPPg++10.5.0 | Success | 279,162+35.82 RP | ||
| Jul 14, 2026 11:46 | RUSTrust-1.95.0 | Error | +1'736.15 RP | ||
| Jul 14, 2026 10:49 | RUSTrust-1.95.0 | Error | +3'947.23 RP | ||
| Jul 14, 2026 01:18 | RUSTrust-1.95.0 | Error | +168.00 RP | ||
| Jul 13, 2026 22:34 | CPPclang++18.1.3 | Error | |||
| Jul 13, 2026 22:30 | CPPg++14.2.0 | Error | |||
| Jul 13, 2026 22:23 | CPPg++14.2.0 | Error | |||
| Jul 11, 2026 04:09 | CPPg++10.5.0 | Success | 276,287+36.19 RP | ||
| Jul 10, 2026 18:40 | CPPg++10.5.0 | Success | 309,155+32.35 RP | ||
| Jul 9, 2026 19:12 | CPPclang++18.1.3 | Error | |||
| Jul 9, 2026 19:03 | CPPclang++18.1.3 | Success | 4,959 | ||
| Jul 9, 2026 18:50 | CPPclang++18.1.3 | Error | |||
| Jul 9, 2026 18:45 | CPPclang++18.1.3 | Error | |||
| Jul 9, 2026 18:40 | CPPclang++18.1.3 | Success | 2,336 | ||
| Jul 9, 2026 18:21 | CPPclang++18.1.3 | Error | |||
| Jul 9, 2026 18:15 | CPPclang++18.1.3 | Success | 4,573 | ||
| Jul 7, 2026 22:46 | ZIG0.16.0 | Error | |||
| Jul 7, 2026 17:58 | RUSTrust-1.95.0 | Error | |||
| Jul 7, 2026 15:40 | ZIG0.16.0 | Error | |||
| Jul 7, 2026 06:04 | CSHARP10.0.7 | Error | |||
| Jul 7, 2026 05:01 | ZIG0.16.0 | Error | |||
| Jul 7, 2026 04:25 | ZIG0.16.0 | Error | |||
| Jul 7, 2026 03:59 | GOgo1.26.2 | Error | |||
| Jul 7, 2026 03:52 | RUSTrust-1.95.0 | Error | |||
| Jul 7, 2026 02:07 | CPPclang++18.1.3 | Success | 2,435 | ||
| Jul 7, 2026 01:59 | CPPclang++18.1.3 | Error | |||
| Jul 6, 2026 23:05 | CPPclang++18.1.3 | Error | +39.15 RP | ||
| Jul 6, 2026 22:57 | CPPclang++18.1.3 | Error | |||
| Jul 6, 2026 22:50 | CPPclang++18.1.3 | Error | |||
| Jul 6, 2026 22:45 | CPPclang++18.1.3 | Error | |||
| Jul 6, 2026 22:40 | CPPclang++18.1.3 | Error | |||
| Jul 6, 2026 22:31 | CPPclang++18.1.3 | Error | +38.77 RP | ||
| Jul 6, 2026 22:26 | CPPclang++18.1.3 | Error | +617.32 RP | ||
| Jul 6, 2026 22:14 | CPPclang++18.1.3 | Error | +5.00 RP | ||
| Jul 5, 2026 23:32 | CPPclang++18.1.3 | Error | |||
| Jul 3, 2026 13:46 | CPPclang++18.1.3 | Error | |||
| Jul 3, 2026 13:41 | CPPclang++18.1.3 | Error | |||
| Jul 3, 2026 13:36 | CPPclang++18.1.3 | Error | |||
| Jul 3, 2026 13:31 | CPPclang++18.1.3 | Error | |||
| Jul 3, 2026 13:26 | CPPclang++18.1.3 | Error | |||
| Jul 3, 2026 13:20 | CPPclang++18.1.3 | Error | +160.79 RP | ||
| Jul 3, 2026 13:13 | CPPclang++18.1.3 | Error | |||
| Jul 3, 2026 13:08 | CPPclang++18.1.3 | Error |