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 18:15 | 11,677 | 174,702,851 | 145,815,000 | 5,992,000 | 2,326,528 | ||
| 2 | Dec 25, 2025 18:15 | 11,992 | 192,885,144 | 150,901,000 | 4,996,000 | 2,383,872 | ||
| 3 | Dec 25, 2025 18:18 | 12,223 | 181,214,774 | 155,902,000 | 2,998,000 | 2,273,280 | ||
| 4 | Dec 25, 2025 16:36 | 12,267 | 182,628,213 | 156,460,000 | 3,008,000 | 2,269,184 | ||
| 5 | Dec 25, 2025 18:15 | 12,525 | 198,316,235 | 160,834,000 | 1,997,000 | 2,310,144 | ||
| 6 | Dec 25, 2025 16:38 | 12,753 | 195,721,366 | 162,794,000 | 2,996,000 | 2,277,376 | ||
| 7 | Dec 25, 2025 18:15 | 12,859 | 198,117,034 | 164,170,000 | 3,003,000 | 2,342,912 | ||
| 8 | Dec 25, 2025 18:15 | 12,886 | 199,489,179 | 162,509,000 | 5,015,000 | 2,322,432 | ||
| 9 | Dec 25, 2025 18:15 | 12,903 | 195,832,699 | 163,748,000 | 3,993,000 | 2,437,120 | ||
| 10 | Dec 25, 2025 16:36 | 13,193 | 199,180,267 | 169,499,000 | 2,005,000 | 2,310,144 | ||
| 11 | Dec 25, 2025 18:18 | 13,312 | 203,600,798 | 169,053,000 | 4,001,000 | 2,314,240 | ||
| 12 | Dec 25, 2025 18:21 | 13,368 | 200,830,715 | 170,792,000 | 2,996,000 | 2,523,136 | ||
| 13 | Dec 25, 2025 18:18 | 13,496 | 201,216,772 | 172,444,000 | 3,007,000 | 2,514,944 | ||
| 14 | Dec 25, 2025 18:15 | 13,655 | 212,585,037 | 174,512,000 | 3,008,000 | 2,445,312 | ||
| 15 | Dec 25, 2025 18:21 | 13,809 | 212,206,592 | 177,517,000 | 2,005,000 | 2,514,944 | ||
| 16 | Dec 25, 2025 18:18 | 13,859 | 206,545,725 | 174,159,000 | 6,005,000 | 2,379,776 | ||
| 17 | Dec 25, 2025 18:15 | 13,907 | 212,094,208 | 176,790,000 | 3,995,000 | 2,490,368 | ||
| 18 | Dec 25, 2025 18:18 | 14,006 | 213,942,155 | 179,072,000 | 3,001,000 | 2,273,280 | ||
| 19 | Dec 25, 2025 18:15 | 14,021 | 215,159,005 | 177,271,000 | 5,007,000 | 2,301,952 | ||
| 20 | Dec 25, 2025 16:37 | 14,024 | 211,549,988 | 179,303,000 | 3,005,000 | 2,301,952 | ||
| 21 | Dec 25, 2025 16:38 | 14,082 | 216,039,187 | 181,060,000 | 2,000,000 | 2,486,272 | ||
| 22 | Dec 25, 2025 18:21 | 14,125 | 210,296,853 | 176,599,000 | 7,023,000 | 2,379,776 | ||
| 23 | Dec 25, 2025 16:38 | 14,212 | 212,633,801 | 180,756,000 | 3,994,000 | 2,359,296 | ||
| 24 | Dec 25, 2025 16:36 | 14,324 | 209,824,152 | 180,201,000 | 6,006,000 | 2,289,664 | ||
| 25 | Dec 25, 2025 18:19 | 14,343 | 209,238,181 | 183,452,000 | 3,007,000 | 2,387,968 | ||
| 26 | Dec 25, 2025 16:36 | 14,506 | 216,827,278 | 185,567,000 | 3,009,000 | 2,494,464 | ||
| 27 | Dec 25, 2025 16:38 | 14,522 | 219,010,262 | 184,793,000 | 3,995,000 | 2,289,664 | ||
| 28 | Dec 25, 2025 16:36 | 14,633 | 217,871,722 | 187,222,000 | 3,003,000 | 2,441,216 | ||
| 29 | Dec 25, 2025 18:15 | 14,672 | 219,649,932 | 185,739,000 | 4,993,000 | 2,523,136 | ||
| 30 | Dec 25, 2025 16:38 | 14,679 | 215,144,430 | 186,828,000 | 3,996,000 | 2,453,504 | ||
| 31 | Dec 25, 2025 18:18 | 14,727 | 218,616,103 | 188,445,000 | 3,007,000 | 2,502,656 | ||
| 32 | Dec 25, 2025 18:15 | 14,769 | 215,445,771 | 185,994,000 | 5,999,000 | 2,322,432 | ||
| 33 | Dec 25, 2025 18:19 | 14,905 | 226,891,625 | 186,776,000 | 6,991,000 | 2,347,008 | ||
| 34 | Dec 25, 2025 18:19 | 15,059 | 223,615,962 | 191,773,000 | 3,995,000 | 2,297,856 | ||
| 35 | Dec 25, 2025 18:15 | 15,087 | 227,798,192 | 190,129,000 | 6,004,000 | 2,420,736 | ||
| 36 | Dec 25, 2025 16:37 | 15,126 | 224,695,674 | 189,655,000 | 6,987,000 | 2,478,080 | ||
| 37 | Dec 25, 2025 18:15 | 15,168 | 216,744,533 | 192,186,000 | 5,004,000 | 2,351,104 | ||
| 38 | Dec 25, 2025 16:36 | 15,348 | 233,954,684 | 197,525,000 | 2,005,000 | 2,514,944 | ||
| 39 | Dec 25, 2025 18:19 | 15,531 | 229,967,864 | 198,904,000 | 2,998,000 | 2,445,312 | ||
| 40 | Dec 25, 2025 18:19 | 15,622 | 232,219,055 | 200,087,000 | 3,001,000 | 2,506,752 | ||
| 41 | Dec 25, 2025 16:37 | 15,943 | 229,726,602 | 201,252,000 | 6,007,000 | 2,461,696 | ||
| 42 | Dec 25, 2025 18:19 | 16,524 | 238,951,038 | 209,814,000 | 4,995,000 | 2,486,272 | ||
| 43 | Dec 25, 2025 18:15 | 16,573 | 245,380,335 | 211,436,000 | 4,008,000 | 2,289,664 | ||
| 44 | Dec 25, 2025 16:38 | 16,783 | 243,354,985 | 215,178,000 | 3,002,000 | 2,523,136 | ||
| 45 | Dec 25, 2025 18:15 | 17,750 | 259,301,023 | 226,759,000 | 3,995,000 | 2,510,848 |