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 26, 2025 15:14 | 6,409 | 108,380,643 | 75,285,000 | 8,030,000 | 2,293,760 | ||
| 2 | Dec 26, 2025 15:22 | 7,063 | 120,565,629 | 82,838,000 | 8,982,000 | 2,338,816 | ||
| 3 | Dec 26, 2025 15:22 | 7,257 | 126,740,710 | 92,328,000 | 2,007,000 | 2,457,600 | ||
| 4 | Dec 26, 2025 15:22 | 7,284 | 125,811,965 | 90,658,000 | 4,029,000 | 2,428,928 | ||
| 5 | Dec 26, 2025 15:22 | 7,360 | 125,018,101 | 92,662,000 | 3,021,000 | 2,310,144 | ||
| 6 | Dec 26, 2025 15:22 | 7,373 | 124,634,027 | 92,853,000 | 2,995,000 | 2,514,944 | ||
| 7 | Dec 26, 2025 15:16 | 7,374 | 124,141,136 | 86,778,000 | 9,081,000 | 2,322,432 | ||
| 8 | Dec 26, 2025 15:14 | 7,377 | 123,848,134 | 92,910,000 | 2,997,000 | 2,392,064 | ||
| 9 | Dec 26, 2025 15:22 | 7,389 | 126,418,910 | 91,053,000 | 5,002,000 | 2,498,560 | ||
| 10 | Dec 26, 2025 15:22 | 7,525 | 128,965,437 | 93,829,000 | 3,992,000 | 2,322,432 | ||
| 11 | Dec 26, 2025 15:14 | 7,644 | 126,502,830 | 94,356,000 | 5,018,000 | 2,379,776 | ||
| 12 | Dec 26, 2025 15:16 | 7,684 | 121,835,731 | 92,904,000 | 6,992,000 | 2,465,792 | ||
| 13 | Dec 26, 2025 15:22 | 7,714 | 128,061,122 | 95,266,000 | 5,014,000 | 2,396,160 | ||
| 14 | Dec 26, 2025 15:22 | 7,766 | 123,693,886 | 97,961,000 | 2,998,000 | 2,433,024 | ||
| 15 | Dec 26, 2025 15:16 | 7,780 | 124,533,154 | 97,130,000 | 4,005,000 | 2,363,392 | ||
| 16 | Dec 26, 2025 15:16 | 7,791 | 133,830,619 | 97,269,000 | 4,011,000 | 2,330,624 | ||
| 17 | Dec 26, 2025 15:22 | 7,832 | 127,538,393 | 97,819,000 | 3,992,000 | 2,527,232 | ||
| 18 | Dec 26, 2025 15:22 | 7,834 | 132,932,277 | 93,858,000 | 7,987,000 | 2,420,736 | ||
| 19 | Dec 26, 2025 15:22 | 7,938 | 129,149,642 | 98,191,000 | 5,009,000 | 2,281,472 | ||
| 20 | Dec 26, 2025 15:14 | 8,016 | 132,896,717 | 99,203,000 | 5,010,000 | 2,420,736 | ||
| 21 | Dec 26, 2025 15:14 | 8,033 | 137,119,483 | 102,424,000 | 2,008,000 | 2,486,272 | ||
| 22 | Dec 26, 2025 15:22 | 8,037 | 133,455,766 | 100,459,000 | 4,018,000 | 2,457,600 | ||
| 23 | Dec 26, 2025 15:16 | 8,050 | 130,146,941 | 100,625,000 | 4,025,000 | 2,412,544 | ||
| 24 | Dec 26, 2025 15:14 | 8,090 | 133,706,128 | 100,158,000 | 5,007,000 | 2,330,624 | ||
| 25 | Dec 26, 2025 15:22 | 8,099 | 133,272,174 | 103,277,000 | 2,005,000 | 2,334,720 | ||
| 26 | Dec 26, 2025 15:22 | 8,120 | 132,711,359 | 103,548,000 | 2,010,000 | 2,408,448 | ||
| 27 | Dec 26, 2025 15:21 | 8,224 | 130,064,934 | 101,914,000 | 4,995,000 | 2,510,848 | ||
| 28 | Dec 26, 2025 15:14 | 8,246 | 135,033,217 | 105,193,000 | 2,003,000 | 2,510,848 | ||
| 29 | Dec 26, 2025 15:22 | 8,280 | 134,311,162 | 106,631,000 | 1,005,000 | 2,412,544 | ||
| 30 | Dec 26, 2025 15:16 | 8,293 | 133,946,451 | 103,815,000 | 3,992,000 | 2,514,944 | ||
| 31 | Dec 26, 2025 15:22 | 8,297 | 141,409,462 | 101,875,000 | 5,992,000 | 2,404,352 | ||
| 32 | Dec 26, 2025 15:16 | 8,415 | 137,014,154 | 108,389,000 | 1,003,000 | 2,351,104 | ||
| 33 | Dec 26, 2025 15:16 | 8,416 | 136,286,951 | 106,397,000 | 3,011,000 | 2,486,272 | ||
| 34 | Dec 26, 2025 15:22 | 8,451 | 141,655,432 | 104,873,000 | 4,993,000 | 2,375,680 | ||
| 35 | Dec 26, 2025 15:22 | 8,469 | 139,482,826 | 108,099,000 | 2,001,000 | 2,379,776 | ||
| 36 | Dec 26, 2025 15:16 | 8,483 | 141,006,908 | 106,269,000 | 4,010,000 | 2,273,280 | ||
| 37 | Dec 26, 2025 15:16 | 8,494 | 143,988,729 | 109,421,000 | 1,003,000 | 2,293,760 | ||
| 38 | Dec 26, 2025 15:22 | 8,525 | 143,888,592 | 107,828,000 | 2,995,000 | 2,449,408 | ||
| 39 | Dec 26, 2025 15:21 | 8,678 | 137,692,552 | 109,822,000 | 2,995,000 | 2,457,600 | ||
| 40 | Dec 26, 2025 15:21 | 8,727 | 141,740,433 | 108,437,000 | 5,020,000 | 2,457,600 | ||
| 41 | Dec 26, 2025 15:16 | 8,729 | 140,984,330 | 106,448,000 | 7,029,000 | 2,494,464 | ||
| 42 | Dec 26, 2025 15:22 | 8,760 | 136,690,535 | 108,889,000 | 4,994,000 | 2,482,176 | ||
| 43 | Dec 26, 2025 15:14 | 9,012 | 142,920,528 | 112,149,000 | 5,006,000 | 2,359,296 | ||
| 44 | Dec 26, 2025 15:22 | 9,051 | 145,040,366 | 109,613,000 | 8,045,000 | 2,449,408 | ||
| 45 | Dec 26, 2025 15:14 | 9,064 | 149,238,784 | 109,848,000 | 7,988,000 | 2,506,752 | ||
| 46 | Dec 26, 2025 15:16 | 9,095 | 149,463,115 | 116,237,000 | 2,004,000 | 2,445,312 | ||
| 47 | Dec 26, 2025 15:22 | 9,279 | 153,135,390 | 114,598,000 | 6,031,000 | 2,514,944 | ||
| 48 | Dec 26, 2025 15:22 | 9,292 | 149,825,563 | 116,801,000 | 3,993,000 | 2,523,136 |