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 | Mar 13, 2026 21:17 | 5,271 | 98,642,788 | 59,459,000 | 9,070,000 | 2,408,448 | ||
| 2 | Mar 12, 2026 05:26 | 5,434 | 99,900,361 | 64,591,000 | 6,055,000 | 2,289,664 | ||
| 3 | Mar 13, 2026 21:17 | 5,545 | 99,109,489 | 62,073,000 | 10,011,000 | 2,523,136 | ||
| 4 | Mar 13, 2026 21:26 | 5,605 | 100,578,652 | 62,885,000 | 9,981,000 | 2,269,184 | ||
| 5 | Mar 13, 2026 21:17 | 5,686 | 98,340,794 | 64,923,000 | 8,989,000 | 2,457,600 | ||
| 6 | Mar 13, 2026 21:14 | 5,835 | 107,336,614 | 73,853,000 | 1,996,000 | 2,297,856 | ||
| 7 | Mar 13, 2026 21:21 | 5,911 | 105,016,100 | 71,848,000 | 4,989,000 | 2,412,544 | ||
| 8 | Mar 13, 2026 21:17 | 5,971 | 101,237,095 | 70,561,000 | 7,056,000 | 2,420,736 | ||
| 9 | Mar 13, 2026 21:14 | 5,999 | 100,662,094 | 71,986,000 | 5,998,000 | 2,519,040 | ||
| 10 | Mar 12, 2026 05:26 | 6,105 | 104,091,431 | 71,325,000 | 8,036,000 | 2,355,200 | ||
| 11 | Mar 13, 2026 21:14 | 6,218 | 109,433,663 | 72,852,000 | 7,983,000 | 2,502,656 | ||
| 12 | Mar 13, 2026 21:17 | 6,220 | 104,134,130 | 72,879,000 | 7,986,000 | 2,338,816 | ||
| 13 | Mar 12, 2026 05:26 | 6,229 | 108,837,378 | 73,979,000 | 6,998,000 | 2,441,216 | ||
| 14 | Mar 13, 2026 21:14 | 6,269 | 104,899,474 | 70,430,000 | 11,067,000 | 2,482,176 | ||
| 15 | Mar 13, 2026 21:22 | 6,353 | 107,976,199 | 75,534,000 | 7,049,000 | 2,404,352 | ||
| 16 | Mar 12, 2026 05:26 | 6,356 | 112,883,463 | 73,555,000 | 9,068,000 | 2,371,584 | ||
| 17 | Mar 13, 2026 21:44 | 6,473 | 107,470,105 | 79,142,000 | 5,009,000 | 2,457,600 | ||
| 18 | Mar 13, 2026 21:44 | 6,490 | 112,496,208 | 75,335,000 | 9,040,000 | 2,293,760 | ||
| 19 | Mar 13, 2026 21:14 | 6,512 | 109,714,394 | 79,613,000 | 5,038,000 | 2,363,392 | ||
| 20 | Mar 13, 2026 21:44 | 6,531 | 109,184,324 | 71,920,000 | 12,985,000 | 2,404,352 | ||
| 21 | Mar 13, 2026 21:22 | 6,582 | 110,858,429 | 74,493,000 | 11,073,000 | 2,289,664 | ||
| 22 | Mar 13, 2026 21:14 | 6,603 | 115,236,495 | 77,853,000 | 7,984,000 | 2,387,968 | ||
| 23 | Mar 13, 2026 21:14 | 6,625 | 111,506,522 | 79,121,000 | 7,010,000 | 2,473,984 | ||
| 24 | Mar 13, 2026 21:14 | 6,723 | 118,357,759 | 77,357,000 | 10,046,000 | 2,433,024 | ||
| 25 | Mar 13, 2026 21:21 | 6,746 | 114,923,873 | 80,639,000 | 7,055,000 | 2,469,888 | ||
| 26 | Mar 13, 2026 21:26 | 6,802 | 114,663,503 | 80,392,000 | 8,039,000 | 2,396,160 | ||
| 27 | Mar 13, 2026 21:21 | 6,834 | 117,399,920 | 80,852,000 | 7,985,000 | 2,404,352 | ||
| 28 | Mar 12, 2026 05:26 | 6,887 | 112,524,024 | 81,486,000 | 8,048,000 | 2,428,928 | ||
| 29 | Mar 12, 2026 05:26 | 6,912 | 115,242,858 | 83,870,000 | 5,990,000 | 2,441,216 | ||
| 30 | Mar 12, 2026 05:26 | 6,917 | 112,185,693 | 83,923,000 | 5,994,000 | 2,461,696 | ||
| 31 | Mar 13, 2026 21:14 | 7,000 | 118,370,495 | 82,995,000 | 7,999,000 | 2,453,504 | ||
| 32 | Mar 13, 2026 21:17 | 7,009 | 117,543,333 | 83,111,000 | 8,010,000 | 2,473,984 | ||
| 33 | Mar 12, 2026 05:26 | 7,093 | 118,600,278 | 85,190,000 | 7,015,000 | 2,482,176 | ||
| 34 | Mar 13, 2026 21:17 | 7,141 | 120,068,548 | 88,839,000 | 3,992,000 | 2,379,776 | ||
| 35 | Mar 12, 2026 05:26 | 7,195 | 118,686,332 | 87,496,000 | 6,034,000 | 2,527,232 | ||
| 36 | Mar 13, 2026 21:17 | 7,388 | 126,781,316 | 88,046,000 | 8,004,000 | 2,502,656 | ||
| 37 | Mar 13, 2026 21:26 | 7,644 | 126,472,387 | 94,357,000 | 5,018,000 | 2,473,984 | ||
| 38 | Mar 13, 2026 21:17 | 8,177 | 132,984,117 | 99,283,000 | 7,020,000 | 2,330,624 | ||
| 39 | Mar 13, 2026 21:22 | 9,453 | 150,230,206 | 115,894,000 | 6,993,000 | 2,510,848 |