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 30, 2025 02:07 | 2,998 | 72,359,352 | 34,981,000 | 3,997,000 | 2,473,984 | ||
| 2 | Dec 30, 2025 01:58 | 3,130 | 71,074,996 | 36,624,000 | 4,069,000 | 2,338,816 | ||
| 3 | Dec 30, 2025 02:12 | 3,175 | 65,120,700 | 38,261,000 | 3,020,000 | 2,457,600 | ||
| 4 | Dec 30, 2025 02:07 | 3,238 | 66,175,456 | 40,094,000 | 2,004,000 | 2,392,064 | ||
| 5 | Dec 30, 2025 02:17 | 3,276 | 63,356,498 | 41,579,000 | 1,014,000 | 2,465,792 | ||
| 6 | Dec 30, 2025 02:12 | 3,276 | 70,331,911 | 40,558,000 | 2,027,000 | 2,416,640 | ||
| 7 | Dec 30, 2025 02:14 | 3,315 | 68,837,151 | 41,096,000 | 2,004,000 | 2,449,408 | ||
| 8 | Dec 30, 2025 02:14 | 3,348 | 67,866,426 | 40,484,000 | 3,036,000 | 2,318,336 | ||
| 9 | Dec 30, 2025 02:01 | 3,352 | 72,626,106 | 38,507,000 | 5,066,000 | 2,478,080 | ||
| 10 | Dec 30, 2025 02:07 | 3,375 | 70,729,693 | 40,879,000 | 2,991,000 | 2,297,856 | ||
| 11 | Dec 30, 2025 02:01 | 3,397 | 69,844,436 | 38,136,000 | 6,021,000 | 2,494,464 | ||
| 12 | Dec 30, 2025 02:01 | 3,400 | 68,046,919 | 41,181,000 | 3,013,000 | 2,433,024 | ||
| 13 | Dec 30, 2025 02:07 | 3,411 | 69,459,821 | 41,315,000 | 3,023,000 | 2,400,256 | ||
| 14 | Dec 30, 2025 02:02 | 3,421 | 67,957,738 | 40,436,000 | 4,043,000 | 2,449,408 | ||
| 15 | Dec 30, 2025 02:32 | 3,425 | 70,867,151 | 43,519,000 | 1,012,000 | 2,437,120 | ||
| 16 | Dec 30, 2025 02:02 | 3,427 | 70,590,458 | 41,512,000 | 3,037,000 | 2,490,368 | ||
| 17 | Dec 30, 2025 02:32 | 3,476 | 71,025,454 | 41,169,000 | 4,016,000 | 2,506,752 | ||
| 18 | Dec 30, 2025 02:07 | 3,480 | 67,001,202 | 44,237,000 | 1,005,000 | 2,416,640 | ||
| 19 | Dec 30, 2025 02:07 | 3,482 | 77,091,134 | 41,243,000 | 4,023,000 | 2,494,464 | ||
| 20 | Dec 30, 2025 02:07 | 3,495 | 65,988,353 | 42,401,000 | 3,028,000 | 2,441,216 | ||
| 21 | Dec 30, 2025 02:07 | 3,511 | 76,182,165 | 42,597,000 | 3,042,000 | 2,461,696 | ||
| 22 | Dec 30, 2025 02:08 | 3,531 | 74,344,785 | 42,906,000 | 2,993,000 | 2,482,176 | ||
| 23 | Dec 30, 2025 02:17 | 3,554 | 70,863,310 | 44,194,000 | 2,008,000 | 2,363,392 | ||
| 24 | Dec 30, 2025 02:01 | 3,562 | 72,668,600 | 42,279,000 | 4,026,000 | 2,465,792 | ||
| 25 | Dec 30, 2025 01:58 | 3,572 | 65,935,253 | 43,403,000 | 3,028,000 | 2,428,928 | ||
| 26 | Dec 30, 2025 02:08 | 3,615 | 72,903,041 | 43,995,000 | 2,999,000 | 2,506,752 | ||
| 27 | Dec 30, 2025 02:01 | 3,623 | 77,015,915 | 42,084,000 | 5,010,000 | 2,342,912 | ||
| 28 | Dec 30, 2025 02:08 | 3,624 | 75,081,286 | 42,100,000 | 5,011,000 | 2,498,560 | ||
| 29 | Dec 30, 2025 02:17 | 3,629 | 74,894,482 | 45,171,000 | 2,007,000 | 2,412,544 | ||
| 30 | Dec 30, 2025 02:14 | 3,665 | 75,780,311 | 45,621,000 | 2,027,000 | 2,424,832 | ||
| 31 | Dec 30, 2025 02:17 | 3,683 | 72,442,221 | 43,889,000 | 3,989,000 | 2,457,600 | ||
| 32 | Dec 30, 2025 02:07 | 3,684 | 75,152,258 | 43,897,000 | 3,990,000 | 2,371,584 | ||
| 33 | Dec 30, 2025 02:20 | 3,690 | 74,175,010 | 42,969,000 | 4,996,000 | 2,502,656 | ||
| 34 | Dec 30, 2025 02:20 | 3,711 | 76,883,107 | 45,228,000 | 3,015,000 | 2,408,448 | ||
| 35 | Dec 30, 2025 02:20 | 3,718 | 67,191,509 | 44,305,000 | 4,027,000 | 2,359,296 | ||
| 36 | Dec 30, 2025 02:07 | 3,738 | 74,783,481 | 45,556,000 | 3,037,000 | 2,379,776 | ||
| 37 | Dec 30, 2025 02:07 | 3,760 | 74,486,053 | 46,840,000 | 2,036,000 | 2,347,008 | ||
| 38 | Dec 30, 2025 02:01 | 3,766 | 75,054,547 | 44,961,000 | 3,996,000 | 2,326,528 | ||
| 39 | Dec 30, 2025 01:58 | 3,793 | 74,556,239 | 47,301,000 | 2,012,000 | 2,338,816 | ||
| 40 | Dec 30, 2025 02:32 | 3,796 | 80,098,692 | 44,308,000 | 5,035,000 | 2,383,872 | ||
| 41 | Dec 30, 2025 02:02 | 4,020 | 74,296,920 | 47,237,000 | 5,025,000 | 2,367,488 | ||
| 42 | Dec 30, 2025 02:17 | 4,177 | 79,543,344 | 51,286,000 | 3,016,000 | 2,494,464 | ||
| 43 | Dec 30, 2025 02:17 | 4,187 | 79,528,850 | 50,400,000 | 4,032,000 | 2,469,888 | ||
| 44 | Dec 30, 2025 02:12 | 4,237 | 89,201,337 | 50,074,000 | 5,007,000 | 2,433,024 | ||
| 45 | Dec 30, 2025 02:07 | 4,269 | 82,038,345 | 53,482,000 | 2,018,000 | 2,330,624 |