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 04:02 | 11,407 | 179,388,677 | 145,286,000 | 3,005,000 | 2,408,448 | ||
| 2 | Dec 25, 2025 05:16 | 11,435 | 180,046,252 | 145,666,000 | 2,993,000 | 2,465,792 | ||
| 3 | Dec 25, 2025 04:02 | 11,643 | 177,490,862 | 145,341,000 | 6,014,000 | 2,449,408 | ||
| 4 | Dec 25, 2025 04:02 | 11,709 | 178,794,128 | 147,210,000 | 5,007,000 | 2,375,680 | ||
| 5 | Dec 25, 2025 04:02 | 11,803 | 183,812,542 | 146,423,000 | 7,020,000 | 2,428,928 | ||
| 6 | Dec 25, 2025 04:02 | 11,907 | 185,112,542 | 150,799,000 | 3,994,000 | 2,310,144 | ||
| 7 | Dec 25, 2025 04:02 | 12,025 | 181,280,243 | 153,313,000 | 3,006,000 | 2,490,368 | ||
| 8 | Dec 25, 2025 05:17 | 12,073 | 184,502,444 | 152,950,000 | 3,998,000 | 2,330,624 | ||
| 9 | Dec 25, 2025 05:16 | 12,093 | 184,526,910 | 156,209,000 | 1,001,000 | 2,408,448 | ||
| 10 | Dec 25, 2025 04:02 | 12,299 | 185,392,939 | 157,894,000 | 1,998,000 | 2,293,760 | ||
| 11 | Dec 25, 2025 05:16 | 12,326 | 184,692,086 | 157,238,000 | 3,004,000 | 2,465,792 | ||
| 12 | Dec 25, 2025 04:02 | 12,364 | 192,362,808 | 158,740,000 | 1,996,000 | 2,473,984 | ||
| 13 | Dec 25, 2025 04:02 | 12,599 | 198,964,362 | 161,787,000 | 1,997,000 | 2,478,080 | ||
| 14 | Dec 25, 2025 04:02 | 12,609 | 188,937,549 | 159,915,000 | 3,997,000 | 2,428,928 | ||
| 15 | Dec 25, 2025 05:17 | 12,818 | 196,970,324 | 162,620,000 | 4,015,000 | 2,482,176 | ||
| 16 | Dec 25, 2025 05:16 | 13,077 | 200,335,965 | 167,999,000 | 1,999,000 | 2,486,272 | ||
| 17 | Dec 25, 2025 05:17 | 13,084 | 200,114,804 | 169,094,000 | 1,000,000 | 2,306,048 | ||
| 18 | Dec 25, 2025 05:17 | 13,143 | 196,692,015 | 164,859,000 | 5,994,000 | 2,424,832 | ||
| 19 | Dec 25, 2025 04:02 | 13,187 | 203,175,706 | 169,432,000 | 2,005,000 | 2,351,104 | ||
| 20 | Dec 25, 2025 04:02 | 13,231 | 198,700,608 | 169,002,000 | 3,000,000 | 2,293,760 | ||
| 21 | Dec 25, 2025 04:02 | 13,258 | 198,140,468 | 168,350,000 | 4,008,000 | 2,289,664 | ||
| 22 | Dec 25, 2025 04:02 | 13,262 | 194,343,505 | 167,399,000 | 5,011,000 | 2,498,560 | ||
| 23 | Dec 25, 2025 04:02 | 13,280 | 205,291,483 | 167,655,000 | 4,989,000 | 2,400,256 | ||
| 24 | Dec 25, 2025 04:02 | 13,325 | 200,413,442 | 172,223,000 | 1,001,000 | 2,494,464 | ||
| 25 | Dec 25, 2025 05:16 | 13,368 | 205,735,757 | 171,789,000 | 1,997,000 | 2,371,584 | ||
| 26 | Dec 25, 2025 04:02 | 13,399 | 197,669,479 | 170,181,000 | 4,004,000 | 2,277,376 | ||
| 27 | Dec 25, 2025 05:15 | 13,444 | 205,012,297 | 171,776,000 | 2,996,000 | 2,281,472 | ||
| 28 | Dec 25, 2025 05:16 | 13,521 | 204,197,096 | 171,784,000 | 3,994,000 | 2,490,368 | ||
| 29 | Dec 25, 2025 05:16 | 13,537 | 199,917,928 | 170,981,000 | 4,999,000 | 2,355,200 | ||
| 30 | Dec 25, 2025 05:15 | 13,548 | 200,104,553 | 173,127,000 | 3,002,000 | 2,514,944 | ||
| 31 | Dec 25, 2025 04:02 | 13,582 | 203,629,528 | 172,558,000 | 4,012,000 | 2,510,848 | ||
| 32 | Dec 25, 2025 04:02 | 13,620 | 204,955,612 | 173,055,000 | 4,001,000 | 2,371,584 | ||
| 33 | Dec 25, 2025 04:02 | 13,676 | 207,830,489 | 174,786,000 | 2,996,000 | 2,277,376 | ||
| 34 | Dec 25, 2025 04:01 | 13,692 | 212,046,325 | 172,000,000 | 6,000,000 | 2,510,848 | ||
| 35 | Dec 25, 2025 05:16 | 13,709 | 206,602,764 | 176,220,000 | 2,002,000 | 2,510,848 | ||
| 36 | Dec 25, 2025 04:02 | 13,712 | 200,419,734 | 174,246,000 | 4,005,000 | 2,396,160 | ||
| 37 | Dec 25, 2025 05:17 | 13,714 | 204,030,750 | 175,275,000 | 3,004,000 | 2,355,200 | ||
| 38 | Dec 25, 2025 04:02 | 13,867 | 203,578,495 | 178,267,000 | 2,003,000 | 2,326,528 | ||
| 39 | Dec 25, 2025 05:17 | 14,034 | 207,830,990 | 178,432,000 | 4,009,000 | 2,514,944 | ||
| 40 | Dec 25, 2025 04:02 | 14,072 | 207,969,125 | 178,933,000 | 3,998,000 | 2,420,736 | ||
| 41 | Dec 25, 2025 04:02 | 14,072 | 211,061,434 | 179,932,000 | 2,998,000 | 2,478,080 | ||
| 42 | Dec 25, 2025 05:17 | 14,136 | 214,393,371 | 176,783,000 | 6,991,000 | 2,293,760 | ||
| 43 | Dec 25, 2025 04:02 | 14,169 | 211,849,558 | 180,196,000 | 4,004,000 | 2,441,216 | ||
| 44 | Dec 25, 2025 04:02 | 14,185 | 210,115,327 | 180,392,000 | 4,008,000 | 2,301,952 | ||
| 45 | Dec 25, 2025 05:17 | 14,228 | 209,752,851 | 180,970,000 | 3,999,000 | 2,408,448 | ||
| 46 | Dec 25, 2025 05:15 | 14,234 | 216,380,463 | 180,044,000 | 5,001,000 | 2,306,048 | ||
| 47 | Dec 25, 2025 04:02 | 14,260 | 209,479,447 | 184,383,000 | 1,002,000 | 2,433,024 | ||
| 48 | Dec 25, 2025 05:16 | 14,435 | 224,286,622 | 182,664,000 | 4,990,000 | 2,289,664 | ||
| 49 | Dec 25, 2025 04:02 | 14,562 | 224,137,156 | 186,303,000 | 3,004,000 | 2,449,408 | ||
| 50 | Dec 25, 2025 05:17 | 14,624 | 215,654,831 | 186,104,000 | 4,002,000 | 2,269,184 | ||
| 51 | Dec 25, 2025 04:01 | 14,660 | 219,362,438 | 189,574,000 | 1,003,000 | 2,269,184 | ||
| 52 | Dec 25, 2025 05:17 | 14,672 | 215,853,163 | 185,738,000 | 4,992,000 | 2,330,624 | ||
| 53 | Dec 25, 2025 04:02 | 14,739 | 226,682,063 | 185,591,000 | 6,019,000 | 2,527,232 | ||
| 54 | Dec 25, 2025 05:13 | 14,811 | 218,545,284 | 187,533,000 | 5,014,000 | 2,420,736 | ||
| 55 | Dec 25, 2025 05:17 | 14,836 | 219,971,707 | 189,866,000 | 2,997,000 | 2,310,144 | ||
| 56 | Dec 25, 2025 05:16 | 14,889 | 222,168,341 | 191,550,000 | 2,005,000 | 2,523,136 | ||
| 57 | Dec 25, 2025 04:02 | 14,903 | 218,275,310 | 191,740,000 | 1,997,000 | 2,293,760 | ||
| 58 | Dec 25, 2025 05:17 | 14,934 | 220,824,169 | 191,144,000 | 3,002,000 | 2,412,544 | ||
| 59 | Dec 25, 2025 04:02 | 14,954 | 224,367,326 | 193,398,000 | 1,002,000 | 2,379,776 | ||
| 60 | Dec 25, 2025 05:15 | 15,026 | 225,575,856 | 193,329,000 | 2,003,000 | 2,494,464 | ||
| 61 | Dec 25, 2025 04:02 | 15,211 | 229,364,168 | 193,743,000 | 3,994,000 | 2,482,176 | ||
| 62 | Dec 25, 2025 04:01 | 15,246 | 221,505,785 | 195,198,000 | 3,003,000 | 2,347,008 | ||
| 63 | Dec 25, 2025 04:02 | 15,291 | 227,547,176 | 191,791,000 | 6,992,000 | 2,371,584 | ||
| 64 | Dec 25, 2025 05:13 | 15,301 | 220,860,611 | 193,917,000 | 4,997,000 | 2,404,352 | ||
| 65 | Dec 25, 2025 05:15 | 15,570 | 228,515,068 | 199,399,000 | 3,006,000 | 2,342,912 | ||
| 66 | Dec 25, 2025 04:02 | 15,598 | 234,207,200 | 199,776,000 | 2,996,000 | 2,273,280 | ||
| 67 | Dec 25, 2025 04:02 | 15,807 | 231,328,456 | 199,474,000 | 6,014,000 | 2,314,240 | ||
| 68 | Dec 25, 2025 05:15 | 16,301 | 239,586,153 | 201,912,000 | 9,995,000 | 2,359,296 | ||
| 69 | Dec 25, 2025 05:16 | 16,407 | 240,267,598 | 209,290,000 | 4,005,000 | 2,510,848 | ||
| 70 | Dec 25, 2025 05:13 | 16,468 | 239,094,176 | 210,083,000 | 4,001,000 | 2,428,928 | ||
| 71 | Dec 25, 2025 04:02 | 16,695 | 244,599,921 | 215,035,000 | 2,000,000 | 2,301,952 | ||
| 72 | Dec 25, 2025 05:16 | 17,943 | 260,141,871 | 232,259,000 | 1,001,000 | 2,527,232 |