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
Source code access is restricted. Log in to request access.
No challenges yet.
| # | Date | Score | Wall Time | CPU User | CPU System | Memory | Error | |
|---|---|---|---|---|---|---|---|---|
| 1 | Dec 25, 2025 15:56 | 10,035 | 157,286,107 | 128,443,000 | 2,006,000 | 2,461,696 | ||
| 2 | Dec 25, 2025 16:12 | 11,369 | 174,841,444 | 144,802,000 | 2,995,000 | 2,375,680 | ||
| 3 | Dec 25, 2025 15:57 | 11,628 | 177,837,150 | 146,163,000 | 5,005,000 | 2,281,472 | ||
| 4 | Dec 25, 2025 15:56 | 12,066 | 189,404,796 | 152,864,000 | 3,996,000 | 2,383,872 | ||
| 5 | Dec 25, 2025 15:59 | 12,139 | 187,254,404 | 154,814,000 | 2,996,000 | 2,416,640 | ||
| 6 | Dec 25, 2025 15:56 | 12,430 | 197,480,617 | 159,578,000 | 2,007,000 | 2,478,080 | ||
| 7 | Dec 25, 2025 15:57 | 12,548 | 193,319,561 | 161,119,000 | 2,001,000 | 2,301,952 | ||
| 8 | Dec 25, 2025 15:59 | 12,656 | 192,468,186 | 161,519,000 | 3,009,000 | 2,449,408 | ||
| 9 | Dec 25, 2025 15:56 | 12,693 | 189,387,992 | 160,010,000 | 5,000,000 | 2,514,944 | ||
| 10 | Dec 25, 2025 15:59 | 12,825 | 199,820,930 | 162,736,000 | 3,993,000 | 2,269,184 | ||
| 11 | Dec 25, 2025 16:12 | 12,873 | 195,293,056 | 164,338,000 | 3,006,000 | 2,514,944 | ||
| 12 | Dec 25, 2025 16:27 | 12,891 | 196,721,693 | 164,574,000 | 3,010,000 | 2,269,184 | ||
| 13 | Dec 25, 2025 15:57 | 13,119 | 200,303,740 | 167,543,000 | 3,009,000 | 2,498,560 | ||
| 14 | Dec 25, 2025 15:57 | 13,136 | 196,233,451 | 164,772,000 | 5,991,000 | 2,514,944 | ||
| 15 | Dec 25, 2025 16:12 | 13,137 | 198,453,729 | 169,783,000 | 998,000 | 2,310,144 | ||
| 16 | Dec 25, 2025 15:56 | 13,191 | 198,492,718 | 167,473,000 | 4,011,000 | 2,449,408 | ||
| 17 | Dec 25, 2025 15:59 | 13,195 | 203,074,888 | 168,524,000 | 3,009,000 | 2,527,232 | ||
| 18 | Dec 25, 2025 15:59 | 13,213 | 205,402,849 | 168,778,000 | 2,996,000 | 2,469,888 | ||
| 19 | Dec 25, 2025 16:12 | 13,258 | 203,878,897 | 168,352,000 | 4,008,000 | 2,502,656 | ||
| 20 | Dec 25, 2025 16:27 | 13,376 | 197,821,135 | 167,896,000 | 5,996,000 | 2,510,848 | ||
| 21 | Dec 25, 2025 16:27 | 13,390 | 199,361,524 | 171,066,000 | 3,001,000 | 2,433,024 | ||
| 22 | Dec 25, 2025 15:56 | 13,424 | 208,632,473 | 171,509,000 | 3,008,000 | 2,428,928 | ||
| 23 | Dec 25, 2025 16:12 | 13,571 | 209,149,767 | 173,418,000 | 3,007,000 | 2,396,160 | ||
| 24 | Dec 25, 2025 16:27 | 13,605 | 207,832,522 | 171,869,000 | 4,996,000 | 2,433,024 | ||
| 25 | Dec 25, 2025 15:59 | 13,611 | 207,511,190 | 173,941,000 | 2,998,000 | 2,293,760 | ||
| 26 | Dec 25, 2025 15:56 | 13,703 | 203,173,648 | 175,139,000 | 3,002,000 | 2,502,656 | ||
| 27 | Dec 25, 2025 15:59 | 13,749 | 207,026,163 | 175,746,000 | 2,995,000 | 2,297,856 | ||
| 28 | Dec 25, 2025 16:12 | 13,771 | 204,079,377 | 176,023,000 | 3,000,000 | 2,306,048 | ||
| 29 | Dec 25, 2025 16:12 | 13,846 | 209,094,866 | 174,003,000 | 6,000,000 | 2,510,848 | ||
| 30 | Dec 25, 2025 15:57 | 13,937 | 205,613,621 | 178,179,000 | 3,003,000 | 2,355,200 | ||
| 31 | Dec 25, 2025 15:56 | 13,987 | 204,670,636 | 180,831,000 | 999,000 | 2,306,048 | ||
| 32 | Dec 25, 2025 15:59 | 14,073 | 211,511,304 | 176,954,000 | 5,998,000 | 2,322,432 | ||
| 33 | Dec 25, 2025 15:57 | 14,116 | 216,591,315 | 178,498,000 | 5,013,000 | 2,387,968 | ||
| 34 | Dec 25, 2025 15:57 | 14,252 | 212,444,599 | 180,270,000 | 5,007,000 | 2,347,008 | ||
| 35 | Dec 25, 2025 16:12 | 14,255 | 213,124,458 | 185,314,000 | 0 | 2,482,176 | ||
| 36 | Dec 25, 2025 16:12 | 14,273 | 213,013,072 | 179,529,000 | 6,017,000 | 2,437,120 | ||
| 37 | Dec 25, 2025 15:59 | 14,337 | 209,877,804 | 184,375,000 | 2,004,000 | 2,510,848 | ||
| 38 | Dec 25, 2025 15:58 | 14,409 | 213,775,188 | 184,311,000 | 3,005,000 | 2,482,176 | ||
| 39 | Dec 25, 2025 16:12 | 14,461 | 215,741,830 | 183,992,000 | 3,999,000 | 2,449,408 | ||
| 40 | Dec 25, 2025 16:12 | 14,629 | 214,025,611 | 187,173,000 | 3,002,000 | 2,510,848 | ||
| 41 | Dec 25, 2025 15:57 | 14,636 | 220,862,330 | 188,271,000 | 2,002,000 | 2,281,472 | ||
| 42 | Dec 25, 2025 16:12 | 14,675 | 219,887,399 | 186,780,000 | 3,995,000 | 2,318,336 | ||
| 43 | Dec 25, 2025 16:12 | 14,830 | 225,045,443 | 188,797,000 | 3,995,000 | 2,514,944 | ||
| 44 | Dec 25, 2025 16:12 | 14,884 | 222,568,276 | 190,480,000 | 3,007,000 | 2,281,472 | ||
| 45 | Dec 25, 2025 15:58 | 15,033 | 226,546,891 | 190,417,000 | 5,010,000 | 2,502,656 | ||
| 46 | Dec 25, 2025 15:57 | 15,075 | 223,138,668 | 190,976,000 | 4,999,000 | 2,478,080 | ||
| 47 | Dec 25, 2025 16:12 | 15,115 | 228,869,928 | 194,495,000 | 2,005,000 | 2,281,472 | ||
| 48 | Dec 25, 2025 16:27 | 15,402 | 226,217,017 | 193,217,000 | 7,007,000 | 2,297,856 | ||
| 49 | Dec 25, 2025 15:56 | 15,407 | 225,440,126 | 197,289,000 | 3,004,000 | 2,351,104 | ||
| 50 | Dec 25, 2025 15:58 | 15,978 | 233,168,065 | 204,717,000 | 2,995,000 | 2,281,472 | ||
| 51 | Dec 25, 2025 16:27 | 16,615 | 246,371,620 | 213,992,000 | 1,999,000 | 2,326,528 |