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 20, 2026 04:15 | 3,912 | 76,294,905 | 44,879,000 | 5,983,000 | 2,461,696 | ||
| 2 | Mar 20, 2026 04:20 | 4,275 | 84,632,615 | 51,535,000 | 4,042,000 | 2,506,752 | ||
| 3 | Mar 20, 2026 04:25 | 4,277 | 77,360,102 | 47,518,000 | 8,088,000 | 2,490,368 | ||
| 4 | Mar 20, 2026 04:20 | 4,293 | 85,009,661 | 50,830,000 | 4,983,000 | 2,392,064 | ||
| 5 | Mar 20, 2026 04:19 | 4,328 | 86,036,385 | 50,238,000 | 6,028,000 | 2,400,256 | ||
| 6 | Mar 20, 2026 04:15 | 4,452 | 88,117,802 | 50,896,000 | 6,985,000 | 2,371,584 | ||
| 7 | Mar 20, 2026 04:15 | 4,510 | 83,500,515 | 54,586,000 | 4,043,000 | 2,494,464 | ||
| 8 | Mar 20, 2026 04:25 | 4,514 | 83,859,006 | 55,643,000 | 3,035,000 | 2,433,024 | ||
| 9 | Mar 20, 2026 04:20 | 4,634 | 87,272,710 | 56,229,000 | 4,016,000 | 2,506,752 | ||
| 10 | Mar 20, 2026 04:20 | 4,681 | 84,538,769 | 54,866,000 | 5,985,000 | 2,457,600 | ||
| 11 | Mar 20, 2026 04:20 | 4,725 | 84,614,842 | 57,395,000 | 4,027,000 | 2,277,376 | ||
| 12 | Mar 20, 2026 04:25 | 4,741 | 84,865,531 | 58,603,000 | 3,031,000 | 2,392,064 | ||
| 13 | Mar 20, 2026 04:25 | 4,757 | 92,468,135 | 56,855,000 | 4,987,000 | 2,478,080 | ||
| 14 | Mar 20, 2026 04:25 | 4,772 | 87,959,432 | 59,031,000 | 3,001,000 | 2,428,928 | ||
| 15 | Mar 20, 2026 04:19 | 4,812 | 88,461,449 | 56,506,000 | 6,054,000 | 2,498,560 | ||
| 16 | Mar 20, 2026 04:19 | 4,835 | 86,882,590 | 56,871,000 | 5,986,000 | 2,478,080 | ||
| 17 | Mar 20, 2026 04:19 | 4,881 | 92,008,352 | 60,436,000 | 3,021,000 | 2,465,792 | ||
| 18 | Mar 20, 2026 04:20 | 4,940 | 95,166,082 | 60,209,000 | 4,013,000 | 2,523,136 | ||
| 19 | Mar 20, 2026 04:15 | 4,948 | 94,095,155 | 60,308,000 | 4,020,000 | 2,482,176 | ||
| 20 | Mar 20, 2026 04:19 | 4,967 | 95,848,629 | 58,523,000 | 6,054,000 | 2,351,104 | ||
| 21 | Mar 20, 2026 04:15 | 5,000 | 98,845,494 | 58,003,000 | 7,000,000 | 2,457,600 | ||
| 22 | Mar 20, 2026 04:19 | 5,081 | 90,520,127 | 62,054,000 | 4,003,000 | 2,392,064 | ||
| 23 | Mar 20, 2026 04:15 | 5,102 | 91,665,639 | 61,298,000 | 5,024,000 | 2,355,200 | ||
| 24 | Mar 20, 2026 04:25 | 5,114 | 93,882,533 | 64,462,000 | 2,014,000 | 2,453,504 | ||
| 25 | Mar 20, 2026 04:25 | 5,130 | 97,030,736 | 60,630,000 | 6,063,000 | 2,449,408 | ||
| 26 | Mar 20, 2026 04:15 | 5,160 | 90,116,149 | 62,076,000 | 5,006,000 | 2,502,656 | ||
| 27 | Mar 20, 2026 04:25 | 5,230 | 98,936,643 | 62,992,000 | 4,999,000 | 2,510,848 | ||
| 28 | Mar 20, 2026 04:25 | 5,268 | 93,539,081 | 65,469,000 | 3,021,000 | 2,494,464 | ||
| 29 | Mar 20, 2026 04:20 | 5,284 | 93,240,547 | 65,709,000 | 2,986,000 | 2,441,216 | ||
| 30 | Mar 20, 2026 04:25 | 5,303 | 97,984,983 | 61,950,000 | 6,994,000 | 2,465,792 | ||
| 31 | Mar 20, 2026 04:25 | 5,359 | 97,219,154 | 65,628,000 | 4,038,000 | 2,330,624 | ||
| 32 | Mar 20, 2026 04:15 | 5,437 | 100,409,159 | 65,628,000 | 5,048,000 | 2,359,296 | ||
| 33 | Mar 20, 2026 04:19 | 5,525 | 96,706,295 | 66,842,000 | 4,988,000 | 2,498,560 | ||
| 34 | Mar 20, 2026 04:25 | 5,546 | 97,874,733 | 66,096,000 | 6,008,000 | 2,359,296 | ||
| 35 | Mar 20, 2026 04:25 | 5,577 | 98,841,809 | 68,477,000 | 4,028,000 | 2,478,080 | ||
| 36 | Mar 20, 2026 04:25 | 5,591 | 102,446,425 | 67,639,000 | 5,047,000 | 2,281,472 | ||
| 37 | Mar 20, 2026 04:19 | 5,618 | 101,411,048 | 68,037,000 | 5,002,000 | 2,428,928 | ||
| 38 | Mar 20, 2026 04:20 | 5,624 | 104,682,208 | 68,105,000 | 5,007,000 | 2,281,472 | ||
| 39 | Mar 20, 2026 04:25 | 5,670 | 96,307,924 | 69,673,000 | 4,039,000 | 2,465,792 | ||
| 40 | Mar 20, 2026 04:20 | 5,715 | 101,340,423 | 69,270,000 | 5,019,000 | 2,457,600 | ||
| 41 | Mar 20, 2026 04:15 | 5,731 | 102,311,591 | 70,472,000 | 4,027,000 | 2,514,944 | ||
| 42 | Mar 20, 2026 04:19 | 5,824 | 101,514,086 | 69,657,000 | 6,057,000 | 2,314,240 |