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 3, 2026 11:00 | CPPclang++18.1.3 | Success | 1,327 | ||
| Aug 3, 2026 10:50 | CPPclang++18.1.3 | Success | 1,385 | ||
| Aug 3, 2026 10:39 | CPPg++14.2.0 | Success | 1,569 | ||
| Aug 3, 2026 10:32 | CPPg++14.2.0 | Success | 1,552 | ||
| Aug 3, 2026 03:40 | CPPg++14.2.0 | Success | 1,571 | ||
| Aug 3, 2026 03:35 | CPPclang++18.1.3 | Success | 1,461 | ||
| Aug 3, 2026 03:30 | CPPg++14.2.0 | Success | 1,567 | ||
| Aug 3, 2026 03:20 | CPPg++14.2.0 | Success | 1,534 | ||
| Aug 3, 2026 03:15 | CPPg++14.2.0 | Success | 1,498 | ||
| Aug 3, 2026 03:10 | CPPg++14.2.0 | Success | 1,439 | ||
| Aug 3, 2026 03:02 | CPPg++14.2.0 | Success | 1,719+5.00 RP | ||
| Aug 2, 2026 20:31 | CPPg++14.2.0 | Success | 1,436 | ||
| Aug 2, 2026 20:26 | CPPg++14.2.0 | Success | 1,626 | ||
| Aug 2, 2026 20:18 | CPPg++14.2.0 | Success | 1,408 | ||
| Jul 31, 2026 06:16 | CPPg++10.5.0 | Success | 279,162+35.82 RP | ||
| Jul 14, 2026 11:46 | RUSTrust-1.95.0 | Success | 1,709+1'736.15 RP | ||
| Jul 14, 2026 10:49 | RUSTrust-1.95.0 | Success | 2,430+3'947.23 RP | ||
| Jul 14, 2026 01:18 | RUSTrust-1.95.0 | Success | 59,524+168.00 RP | ||
| Jul 13, 2026 22:34 | CPPclang++18.1.3 | Success | 1,251 | ||
| Jul 13, 2026 22:30 | CPPg++14.2.0 | Success | 1,422 | ||
| Jul 13, 2026 22:23 | CPPg++14.2.0 | Success | 1,402 | ||
| 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 | Success | 1,239 | ||
| Jul 9, 2026 18:45 | CPPclang++18.1.3 | Success | 1,272 | ||
| Jul 9, 2026 18:40 | CPPclang++18.1.3 | Success | 2,336 | ||
| Jul 9, 2026 18:21 | CPPclang++18.1.3 | Success | 1,244 | ||
| Jul 9, 2026 18:15 | CPPclang++18.1.3 | Success | 4,573 | ||
| Jul 7, 2026 22:46 | ZIG0.16.0 | Success | 1,321+90.59 RP | ||
| Jul 7, 2026 17:58 | RUSTrust-1.95.0 | Success | 1,257+509.43 RP | ||
| Jul 7, 2026 15:40 | ZIG0.16.0 | Success | 1,337+722.67 RP | ||
| Jul 7, 2026 06:04 | CSHARP10.0.7 | Success | 1,341+980.44 RP | ||
| Jul 7, 2026 05:01 | ZIG0.16.0 | Success | 1,582 | ||
| Jul 7, 2026 04:25 | ZIG0.16.0 | Success | 1,565 | ||
| Jul 7, 2026 03:59 | GOgo1.26.2 | Success | 1,326+848.04 RP | ||
| Jul 7, 2026 03:52 | RUSTrust-1.95.0 | Success | 1,343+428.47 RP | ||
| Jul 7, 2026 02:07 | CPPclang++18.1.3 | Success | 2,435 | ||
| Jul 7, 2026 01:59 | CPPclang++18.1.3 | Success | 1,845 | ||
| Jul 6, 2026 23:05 | CPPclang++18.1.3 | Success | 1,235+78.30 RP | ||
| Jul 6, 2026 22:57 | CPPclang++18.1.3 | Success | 1,336 | ||
| Jul 6, 2026 22:50 | CPPclang++18.1.3 | Success | 1,310 | ||
| Jul 6, 2026 22:45 | CPPclang++18.1.3 | Success | 1,285 | ||
| Jul 6, 2026 22:40 | CPPclang++18.1.3 | Success | 1,328 | ||
| Jul 6, 2026 22:31 | CPPclang++18.1.3 | Success | 1,241+77.54 RP | ||
| Jul 6, 2026 22:26 | CPPclang++18.1.3 | Success | 1,247+1'234.64 RP | ||
| Jul 6, 2026 22:14 | CPPclang++18.1.3 | Success | 1,839+5.00 RP | ||
| Jul 5, 2026 23:32 | CPPclang++18.1.3 | Success | 1,408 | ||
| Jul 3, 2026 13:46 | CPPclang++18.1.3 | Success | 1,424 | ||
| Jul 3, 2026 13:41 | CPPclang++18.1.3 | Success | 1,413 | ||
| Jul 3, 2026 13:36 | CPPclang++18.1.3 | Success | 1,426 | ||
| Jul 3, 2026 13:31 | CPPclang++18.1.3 | Success | 1,433 | ||
| Jul 3, 2026 13:26 | CPPclang++18.1.3 | Success | 1,452 | ||
| Jul 3, 2026 13:20 | CPPclang++18.1.3 | Success | 1,351+321.58 RP | ||
| Jul 3, 2026 13:13 | CPPclang++18.1.3 | Success | 1,429 | ||
| Jul 3, 2026 13:08 | CPPclang++18.1.3 | Success | 1,475 | ||
| Jul 2, 2026 05:49 | CPPg++10.5.0 | Error | |||
| Jul 2, 2026 05:34 | CPPg++10.5.0 | Success | 270,675 | ||
| Jul 2, 2026 05:23 | CPPg++10.5.0 | Success | 106,658 | ||
| Jul 2, 2026 05:15 | CPPg++10.5.0 | Error | |||
| Jul 2, 2026 05:05 | CPPg++10.5.0 | Success | 257,595 | ||
| Jul 2, 2026 04:48 | CPPg++10.5.0 | Success | 141,432 | ||
| Jul 2, 2026 04:20 | CPPg++10.5.0 | Success | 112,038 | ||
| Jun 30, 2026 16:02 | CPPclang++18.1.3 | Success | 1,381+20.94 RP | ||
| Jun 30, 2026 15:57 | CPPclang++18.1.3 | Success | 1,408 | ||
| Jun 30, 2026 15:49 | CPPg++14.2.0 | Success | 7,121 | ||
| Jun 30, 2026 03:31 | GOgo1.26.2 | Success | 1,516 | ||
| Jun 29, 2026 01:12 | GOgo1.26.2 | Success | 1,494+199.93 RP | ||
| Jun 28, 2026 01:57 | RUSTrust-1.95.0 | Success | 1,425+87.54 RP | ||
| Jun 28, 2026 01:41 | GOgo1.26.2 | Success | 1,556 | ||
| Jun 27, 2026 10:17 | GOgo1.26.2 | Success | 1,540+62.64 RP | ||
| Jun 27, 2026 05:49 | RUSTrust-1.95.0 | Success | 1,451 | ||
| Jun 27, 2026 05:44 | RUSTrust-1.95.0 | Success | 1,443+90.06 RP | ||
| Jun 27, 2026 05:39 | RUSTrust-1.95.0 | Success | 1,462+213.04 RP | ||
| Jun 26, 2026 18:51 | CPPg++10.5.0 | Success | 115,277 | ||
| Jun 26, 2026 18:47 | CPPg++10.5.0 | Success | 113,495 | ||
| Jun 26, 2026 18:42 | CPPg++10.5.0 | Success | 106,876 | ||
| Jun 26, 2026 18:35 | CPPg++10.5.0 | Success | 119,562 | ||
| Jun 26, 2026 18:32 | CPPg++10.5.0 | Success | 103,299 | ||
| Jun 21, 2026 13:31 | CPPclang++20.1.2 | Success | 1,971+1'468.66 RP | ||
| Jun 21, 2026 10:26 | CPPclang++20.1.2 | Success | 2,774+25.80 RP | ||
| Jun 21, 2026 10:26 | CPPg++14.2.0 | Success | 3,042 | ||
| Jun 21, 2026 10:24 | CPPg++10.5.0 | Success | 2,851 | ||
| Jun 21, 2026 10:22 | CPPg++10.5.0 | Success | 2,794+136.76 RP | ||
| Jun 21, 2026 10:18 | CPPg++10.5.0 | Success | 2,905+10.63 RP | ||
| Jun 21, 2026 10:15 | CPPg++10.5.0 | Success | 2,914+40.73 RP | ||
| Jun 21, 2026 10:12 | CPPg++10.5.0 | Success | 3,055 | ||
| Jun 21, 2026 10:08 | CPPg++10.5.0 | Success | 3,094 | ||
| Jun 21, 2026 10:03 | CPPg++10.5.0 | Success | 3,133 | ||
| Jun 21, 2026 10:00 | CPPg++10.5.0 | Success | 3,026 | ||
| Jun 21, 2026 08:25 | CPPg++10.5.0 | Success | 2,949+63.19 RP | ||
| Jun 21, 2026 08:23 | CPPg++10.5.0 | Success | 3,011 | ||
| Jun 21, 2026 08:21 | CPPg++10.5.0 | Success | 3,129 | ||
| Jun 21, 2026 08:19 | CPPg++10.5.0 | Success | 3,005+66.21 RP | ||
| Jun 21, 2026 08:17 | CPPg++14.2.0 | Success | 3,066+175.16 RP | ||
| Jun 21, 2026 08:16 | CPPclang++18.1.3 | Success | 3,240+1'850.17 RP | ||
| Jun 21, 2026 08:12 | CPPclang++18.1.3 | Success | 8,089+138.07 RP | ||
| Jun 21, 2026 08:07 | CPPclang++18.1.3 | Error | |||
| Jun 21, 2026 08:02 | CPPclang++18.1.3 | Success | 9,106+1'023.26 RP |