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 18, 2026 16:02 | CPPg++14.2.0 | Error | |||
| Aug 18, 2026 15:47 | CPPg++14.2.0 | Error | |||
| Aug 18, 2026 15:07 | CPPg++14.2.0 | Error | |||
| Aug 18, 2026 14:55 | CPPg++14.2.0 | Error | |||
| Aug 18, 2026 14:41 | CPPg++14.2.0 | Error | |||
| Aug 18, 2026 14:10 | CPPg++14.2.0 | Error | |||
| Aug 18, 2026 13:51 | CPPg++14.2.0 | Error | |||
| Aug 18, 2026 13:33 | CPPg++14.2.0 | Error | |||
| Aug 18, 2026 12:53 | CPPg++14.2.0 | Error | |||
| Aug 18, 2026 12:31 | CPPg++14.2.0 | Error | |||
| Aug 18, 2026 12:24 | CPPg++14.2.0 | Error | |||
| Aug 18, 2026 12:11 | CPPg++14.2.0 | Error | |||
| Aug 18, 2026 11:36 | CPPg++14.2.0 | Error | +294.70 RP | ||
| Aug 18, 2026 11:17 | CPPg++14.2.0 | Error | |||
| Aug 18, 2026 11:03 | CPPg++14.2.0 | Error | +33.73 RP | ||
| Aug 18, 2026 10:49 | CPPg++14.2.0 | Error | |||
| Aug 18, 2026 04:28 | CPPg++14.2.0 | Error | |||
| Aug 18, 2026 04:24 | CPPg++14.2.0 | Error | |||
| Aug 18, 2026 04:21 | CPPg++14.2.0 | Error | |||
| Aug 18, 2026 04:16 | CPPg++14.2.0 | Error | |||
| Aug 18, 2026 04:11 | CPPg++14.2.0 | Error | |||
| Aug 18, 2026 04:07 | CPPg++14.2.0 | Error | |||
| Aug 18, 2026 03:50 | CPPg++14.2.0 | Error | |||
| Aug 18, 2026 03:20 | CPPg++14.2.0 | Error | |||
| Aug 18, 2026 02:17 | CPPg++14.2.0 | Error | |||
| Aug 18, 2026 00:51 | CPPg++14.2.0 | Error | |||
| Aug 17, 2026 23:52 | CPPg++14.2.0 | Error | |||
| Aug 17, 2026 23:02 | CPPg++14.2.0 | Error | |||
| Aug 17, 2026 22:50 | CPPg++14.2.0 | Error | |||
| Aug 17, 2026 22:41 | CPPg++14.2.0 | Error | |||
| Aug 17, 2026 22:13 | CPPg++14.2.0 | Error | |||
| Aug 17, 2026 22:04 | CPPg++14.2.0 | Error | |||
| Aug 17, 2026 21:52 | CPPg++14.2.0 | Error | |||
| Aug 17, 2026 21:41 | CPPg++14.2.0 | Error | |||
| Aug 17, 2026 21:26 | CPPg++14.2.0 | Error | |||
| Aug 17, 2026 21:18 | CPPg++14.2.0 | Error | |||
| Aug 17, 2026 21:14 | CPPg++14.2.0 | Error | |||
| Aug 17, 2026 21:05 | CPPg++14.2.0 | Error | |||
| Aug 17, 2026 15:20 | CPPg++14.2.0 | Error | |||
| Aug 17, 2026 15:15 | CPPg++14.2.0 | Error | |||
| Aug 17, 2026 15:10 | CPPg++14.2.0 | Error | |||
| Aug 17, 2026 15:03 | CPPg++14.2.0 | Error | |||
| Aug 17, 2026 14:57 | CPPg++14.2.0 | Error | +99.56 RP | ||
| Aug 17, 2026 14:53 | CPPg++14.2.0 | Error | |||
| Aug 17, 2026 14:48 | CPPg++14.2.0 | Error | |||
| Aug 17, 2026 14:43 | CPPg++14.2.0 | Error | |||
| Aug 17, 2026 14:40 | CPPg++14.2.0 | Error | |||
| Aug 17, 2026 14:35 | CPPg++14.2.0 | Error | |||
| Aug 17, 2026 14:27 | CPPg++14.2.0 | Error | |||
| Aug 17, 2026 14:22 | CPPg++14.2.0 | Error | |||
| Aug 17, 2026 14:17 | CPPg++14.2.0 | Error | |||
| Aug 17, 2026 14:09 | CPPclang++18.1.3 | Error | |||
| Aug 17, 2026 14:01 | CPPclang++18.1.3 | Error | |||
| Aug 17, 2026 13:51 | CPPclang++18.1.3 | Error | |||
| Aug 17, 2026 13:26 | CPPclang++18.1.3 | Error | |||
| Aug 17, 2026 13:16 | CPPclang++18.1.3 | Error | |||
| Aug 17, 2026 13:08 | CPPclang++18.1.3 | Error | |||
| Aug 17, 2026 12:59 | CPPclang++18.1.3 | Error | |||
| Aug 17, 2026 12:41 | CPPclang++18.1.3 | Error | |||
| Aug 17, 2026 12:18 | ZIG0.15.1 | Error | +123.66 RP | ||
| Aug 17, 2026 12:16 | RUSTrust-1.95.0 | Error | +42.80 RP | ||
| Aug 17, 2026 11:57 | CSHARP9.0.15 | Error | |||
| Aug 17, 2026 11:46 | GOgo1.26.2 | Error | +98.21 RP | ||
| Aug 17, 2026 00:53 | CSHARP9.0.15 | Success | 2,865 | ||
| Aug 16, 2026 23:20 | CSHARP9.0.15 | Success | 3,182 | ||
| Aug 16, 2026 23:14 | GOgo1.26.2 | Error | |||
| Aug 16, 2026 23:10 | ZIG0.15.1 | Error | |||
| Aug 16, 2026 23:06 | RUSTrust-1.80.1 | Error | |||
| Aug 16, 2026 23:05 | RUSTrust-1.90.0 | Error | |||
| Aug 16, 2026 23:03 | ZIG0.16.0 | Error | |||
| Aug 16, 2026 23:03 | GOgo1.26.2 | Error | |||
| Aug 16, 2026 23:03 | GOgo1.23.12 | Error | |||
| Aug 16, 2026 23:02 | GOgo1.25.13 | Error | |||
| Aug 16, 2026 23:01 | GOgo1.26.6 | Error | |||
| Aug 16, 2026 22:59 | ZIG0.15.1 | Error | |||
| Aug 16, 2026 22:59 | GOgo1.26.2 | Success | 2,370 | ||
| Aug 16, 2026 22:58 | RUSTrust-1.95.0 | Error | |||
| Aug 16, 2026 22:46 | CSHARP8.0.30 | Success | 3,486 | ||
| Aug 16, 2026 22:45 | CSHARP10.0.11 | Success | 3,220 | ||
| Aug 16, 2026 22:45 | CSHARP9.0.15 | Success | 3,183 | ||
| Aug 16, 2026 22:36 | CSHARP9.0.15 | Error | |||
| Aug 16, 2026 19:53 | GOgo1.26.2 | Error | |||
| Aug 16, 2026 19:53 | GOgo1.26.2 | Error | |||
| Aug 16, 2026 19:49 | RUSTrust-1.97.1 | Error | |||
| Aug 16, 2026 19:49 | RUSTrust-1.97.1 | Error | |||
| Aug 16, 2026 19:49 | RUSTrust-1.97.1 | Error | |||
| Aug 16, 2026 19:35 | ZIG0.15.1 | Error | |||
| Aug 16, 2026 19:35 | ZIG0.15.1 | Error | |||
| Aug 16, 2026 19:35 | ZIG0.15.1 | Error | |||
| Aug 16, 2026 18:42 | CPPg++14.2.0 | Error | |||
| Aug 16, 2026 18:42 | CPPg++14.2.0 | Error | |||
| Aug 16, 2026 18:33 | CPPg++14.2.0 | Error | |||
| Aug 16, 2026 18:33 | CPPg++14.2.0 | Error | |||
| Aug 16, 2026 18:10 | CPPg++14.2.0 | Error | +203.83 RP | ||
| Aug 16, 2026 18:07 | CPPg++14.2.0 | Error | +47.85 RP | ||
| Aug 16, 2026 18:04 | CPPclang++14.0.6 | Error | |||
| Aug 16, 2026 18:03 | CPPclang++15.0.7 | Error | |||
| Aug 16, 2026 18:03 | CPPclang++16.0.6 | Error | |||
| Aug 16, 2026 18:03 | CPPclang++17.0.6 | Error | |||
| Aug 16, 2026 18:03 | CPPclang++18.1.8 | Error |