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 | |
|---|---|---|---|---|---|
| May 18, 2026 00:33 | CPPclang++18.1.3 | Success | 7,377 | ||
| May 18, 2026 00:33 | CPPclang++20.1.2 | Success | 7,180 | ||
| May 18, 2026 00:33 | CPPclang++17.0.6 | Success | 6,977+27.60 RP | ||
| May 18, 2026 00:31 | CPPclang++18.1.3 | Success | 7,114+142.41 RP | ||
| May 18, 2026 00:31 | CPPg++13.3.0 | Success | 7,867 | ||
| May 18, 2026 00:31 | CPPg++14.2.0 | Success | 7,931 | ||
| May 18, 2026 00:28 | CPPg++13.3.0 | Success | 10,746 | ||
| May 18, 2026 00:28 | CPPg++13.3.0 | Success | 23,424 | ||
| May 18, 2026 00:28 | CPPg++13.3.0 | Success | 14,694 | ||
| May 18, 2026 00:26 | CPPg++13.3.0 | Success | 7,916+619.06 RP | ||
| May 18, 2026 00:24 | CPPg++13.3.0 | Success | 15,523+168.83 RP | ||
| May 18, 2026 00:22 | CPPg++13.3.0 | Success | 21,036+15.82 RP | ||
| May 18, 2026 00:20 | CPPg++13.3.0 | Success | 21,760+79.16 RP | ||
| May 18, 2026 00:18 | CPPg++13.3.0 | Success | 27,871 | ||
| May 18, 2026 00:18 | CPPg++13.3.0 | Success | 30,016 | ||
| May 18, 2026 00:16 | CPPg++13.3.0 | Success | 31,893+30.06 RP | ||
| May 18, 2026 00:16 | CPPg++13.3.0 | Success | 26,288+66.85 RP | ||
| May 18, 2026 00:14 | CPPg++13.3.0 | Success | 35,275+219.02 RP | ||
| May 17, 2026 13:24 | ZIG0.16.0 | Success | 1,673+3'187.64 RP | ||
| May 17, 2026 09:29 | RUSTrust-1.94.0 | Success | 5,161 | ||
| May 17, 2026 08:11 | CPPg++13.3.0 | Success | 158,850 | ||
| May 17, 2026 08:03 | CPPg++13.3.0 | Success | 155,289 | ||
| May 17, 2026 07:21 | CPPg++14.2.0 | Success | 201,684 | ||
| May 17, 2026 06:31 | CPPg++14.2.0 | Success | 231,592 | ||
| May 17, 2026 06:30 | CPPg++14.2.0 | Success | 224,454 | ||
| May 17, 2026 06:30 | CPPg++14.2.0 | Success | 222,967 | ||
| May 16, 2026 23:56 | CPPg++13.3.0 | Error | |||
| May 16, 2026 23:56 | CPPg++13.3.0 | Error | |||
| May 16, 2026 23:56 | CPPg++13.3.0 | Success | 156,019 | ||
| May 16, 2026 20:34 | CPPg++13.3.0 | Success | 202,033 | ||
| May 16, 2026 19:45 | CPPg++13.3.0 | Success | 155,130+4.02 RP | ||
| May 16, 2026 19:41 | CPPg++13.3.0 | Error | |||
| May 16, 2026 19:40 | CPPg++13.3.0 | Error | |||
| May 16, 2026 19:09 | CPPg++13.3.0 | Success | 222,088 | ||
| May 16, 2026 19:06 | CPPg++13.3.0 | Error | |||
| May 16, 2026 19:03 | CPPg++13.3.0 | Error | |||
| May 16, 2026 18:12 | ZIG0.14.0 | Success | 5,503 | ||
| May 16, 2026 16:40 | CPPg++13.3.0 | Success | 169,176 | ||
| May 16, 2026 16:37 | CPPg++13.3.0 | Success | 175,859 | ||
| May 16, 2026 16:35 | CPPg++13.3.0 | Success | 165,452+16.87 RP | ||
| May 16, 2026 16:16 | CPPg++13.3.0 | Success | 229,506+9.47 RP | ||
| May 16, 2026 15:50 | CPPg++13.3.0 | Success | 555,882 | ||
| May 16, 2026 13:19 | CPPg++13.3.0 | Success | 293,272+0.16 RP | ||
| May 16, 2026 13:16 | CPPg++13.3.0 | Success | 308,398 | ||
| May 16, 2026 13:13 | CPPg++14.2.0 | Success | 294,632+0.15 RP | ||
| May 16, 2026 13:11 | CPPg++13.3.0 | Success | 304,807 | ||
| May 16, 2026 13:08 | CPPg++13.3.0 | Success | 310,409 | ||
| May 16, 2026 13:06 | CPPg++13.3.0 | Success | 299,283 | ||
| May 16, 2026 13:02 | CPPg++13.3.0 | Success | 296,117 | ||
| May 16, 2026 13:01 | CPPg++13.3.0 | Success | 295,981+13.21 RP | ||
| May 16, 2026 10:42 | ZIG0.14.0 | Success | 5,538 | ||
| May 16, 2026 00:37 | RUSTrust-1.94.0 | Success | 5,690+5.00 RP | ||
| May 15, 2026 22:32 | GOgo1.26.2 | Success | 6,312 | ||
| May 15, 2026 19:28 | CPPg++13.3.0 | Success | 390,945+25.58 RP | ||
| May 15, 2026 19:27 | CPPg++13.3.0 | Error | |||
| May 15, 2026 19:23 | CPPg++13.3.0 | Error | |||
| May 14, 2026 17:11 | CSHARP9.0.13 | Error | |||
| May 7, 2026 14:07 | CPPclang++18.1.3 | Success | 5,829 | ||
| May 7, 2026 11:36 | CPPg++14.2.0 | Success | 3,631,248 | ||
| May 7, 2026 11:20 | CPPclang++18.1.3 | Success | 5,844 | ||
| May 7, 2026 11:16 | CPPclang++18.1.3 | Success | 6,551 | ||
| May 7, 2026 11:09 | CPPclang++18.1.3 | Success | 12,653 | ||
| May 7, 2026 09:36 | CPPclang++18.1.3 | Success | 5,398 | ||
| May 7, 2026 09:33 | CPPclang++18.1.3 | Success | 1,992 | ||
| May 7, 2026 09:13 | CPPclang++18.1.3 | Error | |||
| May 7, 2026 09:11 | CPPclang++18.1.3 | Error | |||
| May 7, 2026 09:04 | CPPclang++18.1.3 | Error | |||
| May 7, 2026 08:57 | CPPclang++18.1.3 | Error | |||
| May 7, 2026 06:56 | CPPg++14.2.0 | Error | |||
| May 6, 2026 15:26 | CPPg++10.5.0 | Error | |||
| May 6, 2026 15:25 | CPPg++10.5.0 | Error | |||
| May 6, 2026 15:23 | CPPg++10.5.0 | Success | 16,625 | ||
| May 6, 2026 12:34 | GOgo1.26.2 | Success | 6,650 | ||
| May 6, 2026 11:23 | ZIG0.14.0 | Success | 6,030 | ||
| May 6, 2026 10:06 | RUSTrust-1.94.0 | Success | 5,022 | ||
| May 6, 2026 09:04 | GOgo1.26.2 | Error | |||
| May 6, 2026 08:43 | CSHARP10.0.7 | Success | 5,394 | ||
| May 6, 2026 08:38 | CSHARP9.0.15 | Success | 5,590 | ||
| May 6, 2026 05:01 | CSHARP10.0.7 | Success | 5,488 | ||
| May 6, 2026 02:45 | RUSTrust-1.94.0 | Success | 7,433 | ||
| May 6, 2026 00:35 | RUSTrust-1.94.0 | Success | 5,247 | ||
| May 5, 2026 20:51 | RUSTrust-1.94.0 | Success | 5,394 | ||
| May 5, 2026 18:49 | CSHARP10.0.7 | Success | 5,550 | ||
| May 5, 2026 18:37 | CSHARP10.0.7 | Success | 5,540 | ||
| May 5, 2026 18:30 | CSHARP9.0.15 | Success | 5,926 | ||
| May 5, 2026 18:25 | CSHARP9.0.15 | Error | |||
| May 5, 2026 18:15 | CPPclang++18.1.3 | Success | 5,309 | ||
| May 5, 2026 17:55 | CPPg++10.5.0 | Success | 5,180 | ||
| May 5, 2026 17:43 | GOgo1.26.2 | Success | 6,069 | ||
| May 5, 2026 17:35 | GOgo1.26.2 | Error | |||
| May 5, 2026 15:46 | GOgo1.26.2 | Error | |||
| May 5, 2026 15:41 | GOgo1.26.2 | Error | |||
| May 5, 2026 15:11 | CSHARP9.0.15 | Success | 5,609 | ||
| May 5, 2026 13:40 | ZIG0.16.0 | Error | |||
| May 5, 2026 13:22 | CSHARP10.0.7 | Error | |||
| May 5, 2026 13:06 | ZIG0.16.0 | Error | |||
| May 5, 2026 12:47 | CSHARP10.0.7 | Success | 1,915 | ||
| May 5, 2026 12:41 | ZIG0.16.0 | Error | |||
| May 5, 2026 09:50 | CPPg++14.2.0 | Error | |||
| May 5, 2026 09:39 | CPPclang++18.1.3 | Error |