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 29, 2025 01:06 | 3,612 | 75,597,339 | 43,965,000 | 2,997,000 | 2,510,848 | ||
| 2 | Dec 29, 2025 01:08 | 3,709 | 73,987,174 | 42,185,000 | 6,026,000 | 2,412,544 | ||
| 3 | Dec 29, 2025 01:07 | 3,761 | 78,498,563 | 45,904,000 | 2,993,000 | 2,473,984 | ||
| 4 | Dec 29, 2025 01:08 | 3,776 | 75,049,589 | 46,084,000 | 3,005,000 | 2,465,792 | ||
| 5 | Dec 29, 2025 01:15 | 3,790 | 79,235,843 | 45,249,000 | 4,022,000 | 2,469,888 | ||
| 6 | Dec 29, 2025 01:08 | 3,798 | 80,410,612 | 49,372,000 | 0 | 2,404,352 | ||
| 7 | Dec 29, 2025 01:13 | 3,817 | 81,728,055 | 48,611,000 | 1,012,000 | 2,408,448 | ||
| 8 | Dec 29, 2025 01:15 | 3,854 | 79,449,593 | 47,091,000 | 3,005,000 | 2,387,968 | ||
| 9 | Dec 29, 2025 01:09 | 3,856 | 77,382,456 | 45,110,000 | 5,012,000 | 2,416,640 | ||
| 10 | Dec 29, 2025 01:17 | 3,900 | 78,726,721 | 48,667,000 | 2,027,000 | 2,461,696 | ||
| 11 | Dec 29, 2025 01:14 | 3,930 | 82,382,354 | 47,085,000 | 4,007,000 | 2,383,872 | ||
| 12 | Dec 29, 2025 01:17 | 3,948 | 79,150,548 | 50,316,000 | 1,006,000 | 2,457,600 | ||
| 13 | Dec 29, 2025 01:11 | 3,948 | 78,218,880 | 50,312,000 | 1,006,000 | 2,482,176 | ||
| 14 | Dec 29, 2025 01:14 | 3,966 | 81,090,752 | 46,499,000 | 5,054,000 | 2,412,544 | ||
| 15 | Dec 29, 2025 01:09 | 3,969 | 82,485,613 | 49,570,000 | 2,023,000 | 2,490,368 | ||
| 16 | Dec 29, 2025 01:16 | 3,991 | 77,870,850 | 47,888,000 | 3,990,000 | 2,457,600 | ||
| 17 | Dec 29, 2025 01:08 | 3,999 | 76,579,767 | 43,986,000 | 7,997,000 | 2,269,184 | ||
| 18 | Dec 29, 2025 01:10 | 4,014 | 75,532,474 | 48,164,000 | 4,013,000 | 2,347,008 | ||
| 19 | Dec 29, 2025 01:11 | 4,113 | 85,925,743 | 52,461,000 | 1,008,000 | 2,478,080 | ||
| 20 | Dec 29, 2025 01:16 | 4,123 | 79,351,369 | 50,570,000 | 3,034,000 | 2,363,392 | ||
| 21 | Dec 29, 2025 01:08 | 4,124 | 83,075,610 | 53,607,000 | 0 | 2,301,952 | ||
| 22 | Dec 29, 2025 01:07 | 4,144 | 83,764,855 | 49,886,000 | 3,990,000 | 2,412,544 | ||
| 23 | Dec 29, 2025 01:19 | 4,174 | 78,041,926 | 54,267,000 | 0 | 2,347,008 | ||
| 24 | Dec 29, 2025 01:12 | 4,183 | 86,662,109 | 52,363,000 | 2,013,000 | 2,469,888 | ||
| 25 | Dec 29, 2025 01:15 | 4,196 | 84,339,432 | 51,514,000 | 3,030,000 | 2,408,448 | ||
| 26 | Dec 29, 2025 01:13 | 4,211 | 81,521,262 | 51,757,000 | 2,986,000 | 2,387,968 | ||
| 27 | Dec 29, 2025 01:08 | 4,248 | 83,791,341 | 54,218,000 | 1,004,000 | 2,359,296 | ||
| 28 | Dec 29, 2025 01:16 | 4,267 | 77,264,812 | 54,462,000 | 1,008,000 | 2,494,464 | ||
| 29 | Dec 29, 2025 01:06 | 4,294 | 84,991,207 | 52,835,000 | 2,990,000 | 2,338,816 | ||
| 30 | Dec 29, 2025 01:18 | 4,311 | 87,393,772 | 54,037,000 | 2,001,000 | 2,330,624 | ||
| 31 | Dec 29, 2025 01:12 | 4,374 | 86,976,749 | 54,863,000 | 1,995,000 | 2,457,600 | ||
| 32 | Dec 29, 2025 01:19 | 4,405 | 81,544,845 | 51,239,000 | 6,028,000 | 2,379,776 | ||
| 33 | Dec 29, 2025 01:07 | 4,408 | 82,418,062 | 53,284,000 | 4,021,000 | 2,465,792 | ||
| 34 | Dec 29, 2025 01:10 | 4,425 | 79,109,872 | 57,527,000 | 0 | 2,527,232 | ||
| 35 | Dec 29, 2025 01:11 | 4,486 | 86,584,482 | 54,297,000 | 4,022,000 | 2,424,832 | ||
| 36 | Dec 29, 2025 01:10 | 4,488 | 81,615,781 | 55,321,000 | 3,017,000 | 2,502,656 | ||
| 37 | Dec 29, 2025 01:12 | 4,498 | 83,598,400 | 55,453,000 | 3,024,000 | 2,428,928 | ||
| 38 | Dec 29, 2025 01:13 | 4,616 | 86,303,788 | 59,006,000 | 1,000,000 | 2,314,240 | ||
| 39 | Dec 29, 2025 01:14 | 4,635 | 86,325,089 | 55,234,000 | 5,021,000 | 2,514,944 | ||
| 40 | Dec 29, 2025 01:06 | 4,636 | 89,841,117 | 57,259,000 | 3,013,000 | 2,437,120 | ||
| 41 | Dec 29, 2025 01:17 | 4,644 | 83,456,145 | 60,374,000 | 0 | 2,273,280 | ||
| 42 | Dec 29, 2025 01:19 | 4,650 | 84,875,006 | 57,424,000 | 3,022,000 | 2,441,216 | ||
| 43 | Dec 29, 2025 01:18 | 4,818 | 91,673,974 | 60,615,000 | 2,020,000 | 2,351,104 | ||
| 44 | Dec 29, 2025 01:09 | 4,833 | 91,296,354 | 58,843,000 | 3,989,000 | 2,506,752 | ||
| 45 | Dec 29, 2025 01:18 | 5,181 | 94,953,820 | 65,345,000 | 2,010,000 | 2,396,160 |