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 19, 2026 15:28 | CPPg++13.3.0 | Success | 22,188 | ||
| Mar 19, 2026 15:26 | CPPg++13.3.0 | Success | 30,317 | ||
| Mar 19, 2026 15:21 | CPPg++13.3.0 | Success | 357,168 | ||
| Mar 19, 2026 15:20 | CPPclang++18.1.3 | Error | |||
| Mar 19, 2026 15:18 | CPPg++13.3.0 | Error | |||
| Mar 19, 2026 15:10 | CPPg++13.3.0 | Success | 23,333 | ||
| Mar 19, 2026 14:54 | CPPg++13.3.0 | Error | |||
| Mar 19, 2026 14:53 | CPPclang++18.1.3 | Error | |||
| Mar 19, 2026 14:43 | CPPclang++18.1.3 | Success | 18,616 | ||
| Mar 19, 2026 14:41 | CPPclang++18.1.3 | Success | 19,080 | ||
| Mar 19, 2026 14:29 | CPPclang++18.1.3 | Success | 20,087 | ||
| Mar 19, 2026 14:22 | CPPclang++18.1.3 | Success | 21,077 | ||
| Mar 19, 2026 14:17 | CPPclang++18.1.3 | Success | 30,213 | ||
| Mar 19, 2026 14:15 | CPPclang++18.1.3 | Success | 18,332 | ||
| Mar 19, 2026 14:05 | CPPg++13.3.0 | Success | 25,232 | ||
| Mar 19, 2026 14:01 | CPPclang++18.1.3 | Success | 19,141 | ||
| Mar 19, 2026 13:47 | CPPg++13.3.0 | Error | |||
| Mar 19, 2026 13:19 | CPPclang++18.1.3 | Success | 16,369+37.78 RP | ||
| Mar 19, 2026 12:24 | CPPg++13.3.0 | Success | 20,193 | ||
| Mar 19, 2026 12:24 | CPPclang++18.1.3 | Success | 17,448+14.16 RP | ||
| Mar 19, 2026 12:17 | CPPclang++18.1.3 | Success | 17,890+4.43 RP | ||
| Mar 19, 2026 11:47 | CPPg++13.3.0 | Error | |||
| Mar 19, 2026 11:47 | CPPclang++18.1.3 | Error | |||
| Mar 19, 2026 11:41 | CPPclang++18.1.3 | Success | 19,254 | ||
| Mar 19, 2026 11:36 | CPPclang++18.1.3 | Error | |||
| Mar 19, 2026 11:30 | CPPclang++18.1.3 | Success | 18,230 | ||
| Mar 19, 2026 11:24 | CPPclang++18.1.3 | Success | 20,641 | ||
| Mar 19, 2026 11:00 | CPPclang++18.1.3 | Success | 18,110 | ||
| Mar 19, 2026 10:55 | CPPclang++18.1.3 | Success | 18,364 | ||
| Mar 19, 2026 10:50 | CPPclang++18.1.3 | Success | 18,749 | ||
| Mar 19, 2026 10:48 | CPPclang++18.1.3 | Success | 18,829 | ||
| Mar 19, 2026 10:42 | CPPclang++18.1.3 | Success | 18,033+1.07 RP | ||
| Mar 19, 2026 10:02 | CPPclang++18.1.3 | Success | 18,707 | ||
| Mar 19, 2026 09:37 | CPPg++13.3.0 | Error | |||
| Mar 19, 2026 09:24 | CPPclang++18.1.3 | Success | 19,043 | ||
| Mar 19, 2026 09:24 | CPPg++13.3.0 | Error | |||
| Mar 19, 2026 09:23 | CPPclang++18.1.3 | Success | 24,563 | ||
| Mar 19, 2026 09:23 | CPPg++13.3.0 | Success | 27,521 | ||
| Mar 19, 2026 07:45 | CPPclang++18.1.3 | Success | 18,762 | ||
| Mar 19, 2026 07:26 | CPPclang++18.1.3 | Success | 18,642 | ||
| Mar 19, 2026 06:53 | CPPclang++18.1.3 | Success | 18,165 | ||
| Mar 19, 2026 05:57 | CPPclang++18.1.3 | Success | 18,630 | ||
| Mar 19, 2026 05:56 | CPPclang++18.1.3 | Success | 18,736 | ||
| Mar 19, 2026 05:55 | CPPclang++18.1.3 | Success | 19,371 | ||
| Mar 19, 2026 05:36 | CPPclang++18.1.3 | Success | 19,247 | ||
| Mar 19, 2026 05:33 | CPPclang++18.1.3 | Success | 18,736 | ||
| Mar 19, 2026 05:11 | CPPclang++18.1.3 | Success | 18,297 | ||
| Mar 19, 2026 05:10 | CPPclang++18.1.3 | Success | 19,150 | ||
| Mar 19, 2026 05:08 | CPPclang++18.1.3 | Success | 19,177 | ||
| Mar 19, 2026 04:56 | CPPclang++18.1.3 | Success | 18,980 | ||
| Mar 19, 2026 04:50 | CPPclang++18.1.3 | Success | 19,138 | ||
| Mar 19, 2026 04:48 | CPPclang++18.1.3 | Success | 18,068+0.80 RP | ||
| Mar 19, 2026 04:43 | CPPclang++18.1.3 | Success | 18,913 | ||
| Mar 19, 2026 04:38 | CPPclang++18.1.3 | Success | 19,367 | ||
| Mar 19, 2026 04:33 | CPPclang++18.1.3 | Success | 19,065 | ||
| Mar 19, 2026 04:32 | CPPclang++18.1.3 | Success | 19,189 | ||
| Mar 19, 2026 04:31 | CPPclang++18.1.3 | Success | 19,363 | ||
| Mar 19, 2026 04:27 | CPPclang++18.1.3 | Success | 18,934 | ||
| Mar 19, 2026 04:22 | CPPclang++18.1.3 | Success | 19,212 | ||
| Mar 19, 2026 04:02 | CPPclang++18.1.3 | Success | 19,294 | ||
| Mar 19, 2026 04:01 | CPPclang++18.1.3 | Success | 19,328 | ||
| Mar 19, 2026 03:58 | CPPclang++18.1.3 | Success | 19,294 | ||
| Mar 19, 2026 03:55 | CPPclang++18.1.3 | Success | 18,094+11.16 RP | ||
| Mar 19, 2026 03:53 | CPPclang++18.1.3 | Success | 18,671 | ||
| Mar 19, 2026 03:52 | CPPclang++18.1.3 | Success | 19,018 | ||
| Mar 19, 2026 03:48 | CPPclang++18.1.3 | Success | 19,441 | ||
| Mar 19, 2026 03:45 | CPPclang++18.1.3 | Success | 19,381 | ||
| Mar 19, 2026 03:40 | CPPclang++18.1.3 | Success | 19,414 | ||
| Mar 19, 2026 03:16 | CPPclang++18.1.3 | Success | 18,846 | ||
| Mar 19, 2026 03:06 | CPPclang++18.1.3 | Success | 19,138 | ||
| Mar 19, 2026 03:03 | CPPclang++18.1.3 | Success | 18,491 | ||
| Mar 19, 2026 02:37 | CPPclang++18.1.3 | Success | 19,094 | ||
| Mar 19, 2026 02:34 | CPPclang++18.1.3 | Success | 19,079 | ||
| Mar 19, 2026 02:27 | CPPclang++18.1.3 | Success | 19,143 | ||
| Mar 19, 2026 02:11 | CPPclang++18.1.3 | Success | 18,467+31.72 RP | ||
| Mar 19, 2026 02:01 | CPPclang++18.1.3 | Error | |||
| Mar 19, 2026 00:42 | CPPclang++18.1.3 | Success | 19,860 | ||
| Mar 19, 2026 00:35 | CPPclang++18.1.3 | Success | 21,594 | ||
| Mar 19, 2026 00:15 | CPPg++13.3.0 | Error | |||
| Mar 17, 2026 18:33 | CPPclang++18.1.3 | Error | |||
| Mar 17, 2026 18:31 | CPPclang++18.1.3 | Error | |||
| Mar 17, 2026 18:27 | CPPclang++18.1.3 | Error | |||
| Mar 17, 2026 18:23 | CPPclang++18.1.3 | Success | 124,232 | ||
| Mar 17, 2026 18:16 | CPPclang++18.1.3 | Error | |||
| Mar 17, 2026 18:13 | CPPclang++18.1.3 | Error | |||
| Mar 17, 2026 18:05 | CPPclang++18.1.3 | Success | 164,239 | ||
| Mar 17, 2026 18:05 | CPPg++13.3.0 | Success | 249,566 | ||
| Mar 17, 2026 18:02 | CPPclang++18.1.3 | Success | 20,853 | ||
| Mar 17, 2026 18:02 | CPPclang++18.1.3 | Success | 23,096 | ||
| Mar 17, 2026 18:00 | CPPclang++18.1.3 | Success | 19,912 | ||
| Mar 17, 2026 17:59 | CPPclang++18.1.3 | Success | 20,150+7.16 RP | ||
| Mar 17, 2026 17:59 | CPPclang++18.1.3 | Success | 19,616+13.51 RP | ||
| Mar 17, 2026 17:58 | CPPclang++18.1.3 | Success | 20,445+25.79 RP | ||
| Mar 17, 2026 13:46 | CPPg++13.3.0 | Error | |||
| Mar 17, 2026 13:46 | CPPg++13.3.0 | Error | |||
| Mar 17, 2026 13:44 | CPPg++13.3.0 | Error | |||
| Mar 17, 2026 13:44 | CPPg++13.3.0 | Error | |||
| Mar 17, 2026 13:26 | CPPg++13.3.0 | Error | |||
| Mar 17, 2026 13:10 | CPPg++13.3.0 | Error | |||
| Mar 17, 2026 13:10 | CPPg++13.3.0 | Error |