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 22:03 | 10,814 | 173,107,228 | 137,572,000 | 3,012,000 | 2,510,848 | ||
| 2 | Dec 25, 2025 22:03 | 11,525 | 179,515,754 | 148,815,000 | 1,005,000 | 2,437,120 | ||
| 3 | Dec 25, 2025 22:03 | 11,676 | 179,675,457 | 147,798,000 | 3,994,000 | 2,478,080 | ||
| 4 | Dec 25, 2025 22:02 | 11,772 | 176,648,694 | 149,034,000 | 4,000,000 | 2,306,048 | ||
| 5 | Dec 25, 2025 22:01 | 11,849 | 183,951,814 | 150,037,000 | 4,000,000 | 2,281,472 | ||
| 6 | Dec 25, 2025 22:04 | 11,944 | 188,460,372 | 149,258,000 | 6,010,000 | 2,334,720 | ||
| 7 | Dec 25, 2025 22:01 | 12,164 | 190,590,547 | 155,124,000 | 3,002,000 | 2,494,464 | ||
| 8 | Dec 25, 2025 22:03 | 12,334 | 188,485,951 | 157,336,000 | 3,006,000 | 2,342,912 | ||
| 9 | Dec 25, 2025 22:02 | 12,343 | 187,462,130 | 157,449,000 | 3,008,000 | 2,301,952 | ||
| 10 | Dec 25, 2025 22:02 | 12,445 | 187,620,190 | 155,798,000 | 5,992,000 | 2,494,464 | ||
| 11 | Dec 25, 2025 22:03 | 12,504 | 192,121,504 | 158,536,000 | 4,013,000 | 2,273,280 | ||
| 12 | Dec 25, 2025 22:02 | 12,522 | 194,080,283 | 158,792,000 | 3,994,000 | 2,502,656 | ||
| 13 | Dec 25, 2025 22:01 | 12,544 | 183,558,719 | 156,071,000 | 7,003,000 | 2,347,008 | ||
| 14 | Dec 25, 2025 22:01 | 12,632 | 189,917,281 | 161,215,000 | 3,004,000 | 2,301,952 | ||
| 15 | Dec 25, 2025 22:03 | 12,892 | 195,833,316 | 164,580,000 | 3,010,000 | 2,293,760 | ||
| 16 | Dec 25, 2025 22:03 | 12,955 | 195,389,358 | 162,400,000 | 6,014,000 | 2,310,144 | ||
| 17 | Dec 25, 2025 22:01 | 12,999 | 196,371,656 | 166,983,000 | 1,999,000 | 2,269,184 | ||
| 18 | Dec 25, 2025 22:01 | 13,031 | 197,536,691 | 165,400,000 | 4,009,000 | 2,367,488 | ||
| 19 | Dec 25, 2025 22:02 | 13,250 | 195,032,191 | 170,247,000 | 2,002,000 | 2,301,952 | ||
| 20 | Dec 25, 2025 22:03 | 13,278 | 205,781,092 | 169,608,000 | 3,010,000 | 2,351,104 | ||
| 21 | Dec 25, 2025 22:02 | 13,279 | 198,847,978 | 167,603,000 | 5,018,000 | 2,478,080 | ||
| 22 | Dec 25, 2025 22:04 | 13,586 | 202,466,290 | 172,599,000 | 4,013,000 | 2,375,680 | ||
| 23 | Dec 25, 2025 22:02 | 13,612 | 202,425,318 | 170,964,000 | 5,998,000 | 2,490,368 | ||
| 24 | Dec 25, 2025 22:03 | 13,749 | 204,124,995 | 175,742,000 | 2,995,000 | 2,338,816 | ||
| 25 | Dec 25, 2025 22:02 | 13,793 | 212,873,467 | 176,302,000 | 3,005,000 | 2,338,816 | ||
| 26 | Dec 25, 2025 22:03 | 13,807 | 212,217,840 | 176,480,000 | 3,008,000 | 2,490,368 | ||
| 27 | Dec 25, 2025 22:01 | 13,923 | 207,324,122 | 179,002,000 | 2,000,000 | 2,510,848 | ||
| 28 | Dec 25, 2025 22:03 | 13,958 | 215,113,669 | 175,434,000 | 6,014,000 | 2,510,848 | ||
| 29 | Dec 25, 2025 22:02 | 14,021 | 209,409,116 | 180,268,000 | 2,002,000 | 2,510,848 | ||
| 30 | Dec 25, 2025 22:03 | 14,102 | 205,070,296 | 179,318,000 | 4,007,000 | 2,301,952 | ||
| 31 | Dec 25, 2025 22:01 | 14,104 | 209,042,826 | 181,343,000 | 2,003,000 | 2,359,296 | ||
| 32 | Dec 25, 2025 22:03 | 14,111 | 214,806,797 | 181,445,000 | 2,004,000 | 2,396,160 | ||
| 33 | Dec 25, 2025 22:03 | 14,134 | 222,643,111 | 177,751,000 | 5,991,000 | 2,424,832 | ||
| 34 | Dec 25, 2025 22:03 | 14,170 | 209,857,393 | 177,197,000 | 7,007,000 | 2,293,760 | ||
| 35 | Dec 25, 2025 22:04 | 14,321 | 214,121,733 | 182,166,000 | 4,003,000 | 2,387,968 | ||
| 36 | Dec 25, 2025 22:03 | 14,364 | 210,176,745 | 183,734,000 | 2,995,000 | 2,330,624 | ||
| 37 | Dec 25, 2025 22:03 | 14,627 | 220,363,852 | 187,155,000 | 3,002,000 | 2,514,944 | ||
| 38 | Dec 25, 2025 22:02 | 14,694 | 214,885,616 | 187,020,000 | 4,000,000 | 2,351,104 | ||
| 39 | Dec 25, 2025 22:02 | 14,750 | 220,393,602 | 183,762,000 | 7,989,000 | 2,363,392 | ||
| 40 | Dec 25, 2025 22:03 | 15,030 | 223,980,298 | 193,381,000 | 2,003,000 | 2,301,952 | ||
| 41 | Dec 25, 2025 22:03 | 15,042 | 223,963,351 | 193,535,000 | 2,005,000 | 2,523,136 | ||
| 42 | Dec 25, 2025 22:03 | 15,369 | 230,418,942 | 194,799,000 | 4,994,000 | 2,289,664 | ||
| 43 | Dec 25, 2025 22:03 | 15,523 | 233,569,658 | 199,795,000 | 2,007,000 | 2,461,696 | ||
| 44 | Dec 25, 2025 22:02 | 15,540 | 229,666,919 | 198,015,000 | 4,000,000 | 2,273,280 | ||
| 45 | Dec 25, 2025 22:02 | 15,808 | 233,044,799 | 203,504,000 | 2,004,000 | 2,473,984 | ||
| 46 | Dec 25, 2025 22:02 | 16,097 | 239,172,675 | 206,254,000 | 3,003,000 | 2,347,008 | ||
| 47 | Dec 25, 2025 22:01 | 16,948 | 251,667,879 | 215,323,000 | 5,007,000 | 2,498,560 | ||
| 48 | Dec 25, 2025 22:02 | 17,724 | 263,827,253 | 221,400,000 | 9,016,000 | 2,490,368 |