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 22:52 | 5,104 | 92,831,727 | 62,325,000 | 4,021,000 | 2,293,760 | ||
| 2 | Dec 26, 2025 22:52 | 5,222 | 95,135,668 | 63,898,000 | 3,993,000 | 2,351,104 | ||
| 3 | Dec 26, 2025 22:52 | 5,450 | 105,110,159 | 67,855,000 | 2,993,000 | 2,490,368 | ||
| 4 | Dec 26, 2025 22:52 | 5,452 | 101,189,157 | 62,885,000 | 7,985,000 | 2,424,832 | ||
| 5 | Dec 26, 2025 22:51 | 5,604 | 103,072,688 | 68,865,000 | 3,992,000 | 2,457,600 | ||
| 6 | Dec 26, 2025 22:51 | 5,604 | 98,971,571 | 68,857,000 | 3,991,000 | 2,482,176 | ||
| 7 | Dec 26, 2025 22:53 | 5,627 | 100,977,585 | 64,130,000 | 9,018,000 | 2,326,528 | ||
| 8 | Dec 26, 2025 22:52 | 5,681 | 104,756,582 | 69,858,000 | 3,991,000 | 2,408,448 | ||
| 9 | Dec 26, 2025 22:52 | 5,709 | 102,174,438 | 72,207,000 | 2,005,000 | 2,412,544 | ||
| 10 | Dec 26, 2025 22:52 | 5,738 | 106,764,848 | 72,573,000 | 2,015,000 | 2,383,872 | ||
| 11 | Dec 26, 2025 22:52 | 5,757 | 101,093,437 | 71,845,000 | 2,993,000 | 2,469,888 | ||
| 12 | Dec 26, 2025 22:53 | 5,812 | 99,582,704 | 73,537,000 | 2,014,000 | 2,383,872 | ||
| 13 | Dec 26, 2025 22:53 | 5,834 | 103,268,457 | 72,815,000 | 3,033,000 | 2,387,968 | ||
| 14 | Dec 26, 2025 22:52 | 5,840 | 104,425,578 | 70,926,000 | 4,994,000 | 2,355,200 | ||
| 15 | Dec 26, 2025 22:52 | 5,929 | 102,657,777 | 71,075,000 | 6,006,000 | 2,375,680 | ||
| 16 | Dec 26, 2025 22:53 | 5,936 | 100,702,559 | 73,163,000 | 4,008,000 | 2,527,232 | ||
| 17 | Dec 26, 2025 22:53 | 5,947 | 102,830,934 | 73,293,000 | 4,016,000 | 2,330,624 | ||
| 18 | Dec 26, 2025 22:52 | 5,970 | 105,711,653 | 74,592,000 | 3,024,000 | 2,301,952 | ||
| 19 | Dec 26, 2025 22:53 | 5,991 | 104,804,594 | 70,889,000 | 6,989,000 | 2,273,280 | ||
| 20 | Dec 26, 2025 22:52 | 6,012 | 104,448,025 | 72,148,000 | 6,012,000 | 2,371,584 | ||
| 21 | Dec 26, 2025 22:53 | 6,020 | 106,413,976 | 74,245,000 | 4,013,000 | 2,510,848 | ||
| 22 | Dec 26, 2025 22:53 | 6,081 | 104,118,797 | 75,052,000 | 4,002,000 | 2,453,504 | ||
| 23 | Dec 26, 2025 22:52 | 6,110 | 103,509,017 | 76,420,000 | 3,016,000 | 2,469,888 | ||
| 24 | Dec 26, 2025 22:52 | 6,142 | 112,512,323 | 75,857,000 | 3,992,000 | 2,379,776 | ||
| 25 | Dec 26, 2025 22:52 | 6,154 | 106,645,326 | 73,999,000 | 5,999,000 | 2,392,064 | ||
| 26 | Dec 26, 2025 22:52 | 6,172 | 103,389,411 | 75,225,000 | 5,015,000 | 2,408,448 | ||
| 27 | Dec 26, 2025 22:52 | 6,201 | 109,748,752 | 77,594,000 | 3,023,000 | 2,371,584 | ||
| 28 | Dec 26, 2025 22:52 | 6,201 | 109,341,230 | 78,599,000 | 2,015,000 | 2,478,080 | ||
| 29 | Dec 26, 2025 22:52 | 6,205 | 108,666,793 | 78,646,000 | 2,016,000 | 2,404,352 | ||
| 30 | Dec 26, 2025 22:52 | 6,205 | 108,097,264 | 77,644,000 | 3,025,000 | 2,371,584 | ||
| 31 | Dec 26, 2025 22:51 | 6,240 | 104,680,378 | 78,118,000 | 3,004,000 | 2,371,584 | ||
| 32 | Dec 26, 2025 22:52 | 6,264 | 109,320,438 | 77,413,000 | 4,021,000 | 2,478,080 | ||
| 33 | Dec 26, 2025 22:52 | 6,268 | 113,615,852 | 76,459,000 | 5,030,000 | 2,457,600 | ||
| 34 | Dec 26, 2025 22:53 | 6,376 | 111,365,275 | 77,891,000 | 4,993,000 | 2,355,200 | ||
| 35 | Dec 26, 2025 22:52 | 6,533 | 114,439,809 | 79,931,000 | 4,995,000 | 2,371,584 | ||
| 36 | Dec 26, 2025 22:53 | 6,635 | 113,481,164 | 82,243,000 | 4,011,000 | 2,306,048 | ||
| 37 | Dec 26, 2025 22:52 | 6,653 | 108,476,475 | 83,470,000 | 3,016,000 | 2,441,216 | ||
| 38 | Dec 26, 2025 22:53 | 6,744 | 119,634,425 | 81,623,000 | 6,046,000 | 2,351,104 | ||
| 39 | Dec 26, 2025 22:52 | 6,769 | 117,922,788 | 85,999,000 | 1,999,000 | 2,347,008 | ||
| 40 | Dec 26, 2025 22:52 | 6,868 | 117,457,617 | 88,278,000 | 1,003,000 | 2,428,928 | ||
| 41 | Dec 26, 2025 22:52 | 7,221 | 120,558,442 | 86,880,000 | 6,990,000 | 2,322,432 | ||
| 42 | Dec 26, 2025 22:53 | 7,321 | 117,634,457 | 91,168,000 | 4,007,000 | 2,289,664 |