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:28 | 6,365 | 110,581,562 | 77,758,000 | 4,984,000 | 2,412,544 | ||
| 2 | Dec 26, 2025 15:31 | 7,217 | 119,821,517 | 88,829,000 | 4,990,000 | 2,371,584 | ||
| 3 | Dec 26, 2025 15:28 | 7,239 | 120,288,411 | 91,106,000 | 3,003,000 | 2,297,856 | ||
| 4 | Dec 26, 2025 15:28 | 7,262 | 125,306,690 | 90,391,000 | 4,017,000 | 2,383,872 | ||
| 5 | Dec 26, 2025 15:28 | 7,355 | 121,646,248 | 91,585,000 | 4,025,000 | 2,482,176 | ||
| 6 | Dec 26, 2025 15:30 | 7,371 | 123,034,995 | 92,830,000 | 2,994,000 | 2,355,200 | ||
| 7 | Dec 26, 2025 15:28 | 7,422 | 127,209,598 | 92,471,000 | 4,020,000 | 2,469,888 | ||
| 8 | Dec 26, 2025 15:28 | 7,541 | 122,554,079 | 94,031,000 | 4,001,000 | 2,359,296 | ||
| 9 | Dec 26, 2025 15:28 | 7,544 | 122,542,078 | 94,065,000 | 4,002,000 | 2,465,792 | ||
| 10 | Dec 26, 2025 15:31 | 7,549 | 126,545,691 | 94,131,000 | 4,005,000 | 2,351,104 | ||
| 11 | Dec 26, 2025 15:31 | 7,643 | 131,695,328 | 93,336,000 | 6,021,000 | 2,502,656 | ||
| 12 | Dec 26, 2025 15:30 | 7,812 | 133,118,222 | 99,551,000 | 2,011,000 | 2,461,696 | ||
| 13 | Dec 26, 2025 15:28 | 7,837 | 128,646,011 | 97,885,000 | 3,995,000 | 2,351,104 | ||
| 14 | Dec 26, 2025 15:28 | 7,893 | 133,913,413 | 94,565,000 | 8,048,000 | 2,420,736 | ||
| 15 | Dec 26, 2025 15:30 | 7,907 | 143,146,684 | 98,795,000 | 3,991,000 | 2,334,720 | ||
| 16 | Dec 26, 2025 15:30 | 7,916 | 129,155,337 | 96,908,000 | 5,994,000 | 2,514,944 | ||
| 17 | Dec 26, 2025 15:28 | 7,996 | 130,834,643 | 99,951,000 | 3,998,000 | 2,330,624 | ||
| 18 | Dec 26, 2025 15:28 | 8,016 | 132,752,322 | 99,199,000 | 5,010,000 | 2,486,272 | ||
| 19 | Dec 26, 2025 15:28 | 8,020 | 131,897,077 | 101,258,000 | 3,007,000 | 2,506,752 | ||
| 20 | Dec 26, 2025 15:30 | 8,037 | 131,484,447 | 102,466,000 | 2,009,000 | 2,490,368 | ||
| 21 | Dec 26, 2025 15:28 | 8,081 | 129,004,541 | 103,053,000 | 2,001,000 | 2,367,488 | ||
| 22 | Dec 26, 2025 15:28 | 8,202 | 133,054,055 | 100,596,000 | 6,035,000 | 2,416,640 | ||
| 23 | Dec 26, 2025 15:30 | 8,218 | 134,244,713 | 100,846,000 | 5,990,000 | 2,289,664 | ||
| 24 | Dec 26, 2025 15:28 | 8,424 | 137,328,574 | 108,510,000 | 1,004,000 | 2,379,776 | ||
| 25 | Dec 26, 2025 15:31 | 8,490 | 141,872,548 | 108,364,000 | 2,006,000 | 2,330,624 | ||
| 26 | Dec 26, 2025 15:31 | 8,507 | 135,462,885 | 109,583,000 | 1,005,000 | 2,310,144 | ||
| 27 | Dec 26, 2025 15:28 | 8,548 | 143,020,964 | 107,126,000 | 4,004,000 | 2,330,624 | ||
| 28 | Dec 26, 2025 15:30 | 8,601 | 139,645,501 | 106,818,000 | 4,991,000 | 2,363,392 | ||
| 29 | Dec 26, 2025 15:28 | 8,753 | 146,066,687 | 106,805,000 | 6,987,000 | 2,441,216 | ||
| 30 | Dec 26, 2025 15:28 | 8,788 | 147,717,855 | 108,237,000 | 6,013,000 | 2,424,832 | ||
| 31 | Dec 26, 2025 15:31 | 8,968 | 148,972,460 | 113,568,000 | 3,015,000 | 2,482,176 | ||
| 32 | Dec 26, 2025 15:31 | 8,984 | 143,560,744 | 113,801,000 | 2,994,000 | 2,387,968 | ||
| 33 | Dec 26, 2025 15:28 | 8,985 | 144,075,364 | 110,819,000 | 5,990,000 | 2,514,944 | ||
| 34 | Dec 26, 2025 15:28 | 9,006 | 159,056,188 | 113,073,000 | 4,002,000 | 2,383,872 | ||
| 35 | Dec 26, 2025 15:28 | 9,027 | 149,281,221 | 115,349,000 | 2,006,000 | 2,310,144 | ||
| 36 | Dec 26, 2025 15:30 | 9,051 | 146,791,084 | 113,645,000 | 4,022,000 | 2,363,392 | ||
| 37 | Dec 26, 2025 15:28 | 9,079 | 138,670,864 | 113,021,000 | 5,000,000 | 2,465,792 | ||
| 38 | Dec 26, 2025 15:30 | 9,082 | 147,309,180 | 115,070,000 | 3,001,000 | 2,342,912 | ||
| 39 | Dec 26, 2025 15:31 | 9,088 | 144,944,566 | 112,140,000 | 6,007,000 | 2,445,312 | ||
| 40 | Dec 26, 2025 15:28 | 9,169 | 140,106,057 | 111,182,000 | 8,013,000 | 2,437,120 | ||
| 41 | Dec 26, 2025 15:30 | 9,244 | 142,985,693 | 119,175,000 | 1,001,000 | 2,371,584 | ||
| 42 | Dec 26, 2025 15:31 | 9,307 | 142,585,371 | 114,998,000 | 5,999,000 | 2,449,408 | ||
| 43 | Dec 26, 2025 15:28 | 9,328 | 150,175,644 | 119,265,000 | 2,004,000 | 2,387,968 | ||
| 44 | Dec 26, 2025 15:30 | 9,483 | 159,511,044 | 118,263,000 | 5,011,000 | 2,490,368 | ||
| 45 | Dec 26, 2025 15:30 | 9,819 | 157,248,993 | 124,630,000 | 3,015,000 | 2,506,752 |