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 15, 2026 04:56 | 3,321 | 68,553,364 | 41,162,000 | 2,007,000 | 2,457,600 | ||
| 2 | Mar 15, 2026 04:56 | 3,332 | 68,239,584 | 41,299,000 | 2,014,000 | 2,408,448 | ||
| 3 | Mar 15, 2026 04:58 | 3,343 | 70,063,287 | 38,405,000 | 5,053,000 | 2,490,368 | ||
| 4 | Mar 15, 2026 05:01 | 3,381 | 70,478,207 | 40,958,000 | 2,996,000 | 2,449,408 | ||
| 5 | Mar 15, 2026 04:55 | 3,389 | 73,831,125 | 43,060,000 | 1,001,000 | 2,375,680 | ||
| 6 | Mar 15, 2026 04:58 | 3,413 | 72,776,373 | 42,349,000 | 2,016,000 | 2,416,640 | ||
| 7 | Mar 15, 2026 04:58 | 3,450 | 72,580,646 | 41,861,000 | 2,990,000 | 2,420,736 | ||
| 8 | Mar 15, 2026 04:56 | 3,453 | 78,123,676 | 42,894,000 | 1,995,000 | 2,355,200 | ||
| 9 | Mar 15, 2026 05:01 | 3,454 | 70,593,584 | 41,909,000 | 2,993,000 | 2,310,144 | ||
| 10 | Mar 15, 2026 05:01 | 3,456 | 74,893,263 | 43,936,000 | 998,000 | 2,277,376 | ||
| 11 | Mar 15, 2026 05:01 | 3,564 | 73,656,069 | 44,316,000 | 2,014,000 | 2,269,184 | ||
| 12 | Mar 15, 2026 04:57 | 3,567 | 68,931,183 | 41,335,000 | 5,040,000 | 2,375,680 | ||
| 13 | Mar 15, 2026 04:55 | 3,568 | 66,788,715 | 44,372,000 | 2,016,000 | 2,449,408 | ||
| 14 | Mar 15, 2026 04:57 | 3,589 | 71,106,538 | 43,620,000 | 3,043,000 | 2,342,912 | ||
| 15 | Mar 15, 2026 04:56 | 3,608 | 77,604,634 | 42,907,000 | 3,991,000 | 2,314,240 | ||
| 16 | Mar 15, 2026 04:59 | 3,647 | 75,160,342 | 44,383,000 | 3,026,000 | 2,273,280 | ||
| 17 | Mar 15, 2026 04:56 | 3,662 | 73,915,805 | 44,563,000 | 3,038,000 | 2,285,568 | ||
| 18 | Mar 15, 2026 05:01 | 3,665 | 77,834,778 | 43,589,000 | 4,054,000 | 2,420,736 | ||
| 19 | Mar 15, 2026 04:58 | 3,665 | 75,266,675 | 46,636,000 | 1,013,000 | 2,424,832 | ||
| 20 | Mar 15, 2026 05:01 | 3,692 | 75,108,409 | 43,995,000 | 3,999,000 | 2,494,464 | ||
| 21 | Mar 15, 2026 04:59 | 3,693 | 73,076,041 | 45,014,000 | 3,000,000 | 2,355,200 | ||
| 22 | Mar 15, 2026 04:57 | 3,699 | 81,448,075 | 45,084,000 | 3,005,000 | 2,457,600 | ||
| 23 | Mar 15, 2026 04:57 | 3,719 | 71,179,215 | 43,306,000 | 5,035,000 | 2,371,584 | ||
| 24 | Mar 15, 2026 04:57 | 3,747 | 78,876,761 | 46,680,000 | 2,029,000 | 2,404,352 | ||
| 25 | Mar 15, 2026 04:59 | 3,747 | 80,024,350 | 44,648,000 | 4,058,000 | 2,490,368 | ||
| 26 | Mar 15, 2026 04:55 | 3,759 | 74,875,735 | 45,871,000 | 2,991,000 | 2,494,464 | ||
| 27 | Mar 15, 2026 04:59 | 3,760 | 76,660,147 | 45,888,000 | 2,992,000 | 2,441,216 | ||
| 28 | Mar 15, 2026 04:56 | 3,760 | 79,935,024 | 46,884,000 | 1,995,000 | 2,363,392 | ||
| 29 | Mar 15, 2026 04:58 | 3,760 | 77,389,273 | 45,882,000 | 2,992,000 | 2,424,832 | ||
| 30 | Mar 15, 2026 05:01 | 3,822 | 76,551,985 | 48,678,000 | 1,014,000 | 2,510,848 | ||
| 31 | Mar 15, 2026 04:57 | 3,836 | 77,753,416 | 46,877,000 | 2,992,000 | 2,367,488 | ||
| 32 | Mar 15, 2026 04:56 | 3,845 | 77,670,147 | 44,983,000 | 4,998,000 | 2,363,392 | ||
| 33 | Mar 15, 2026 04:56 | 3,865 | 75,583,545 | 48,233,000 | 2,009,000 | 2,371,584 | ||
| 34 | Mar 15, 2026 04:59 | 3,914 | 76,827,498 | 46,886,000 | 3,990,000 | 2,322,432 | ||
| 35 | Mar 15, 2026 04:56 | 3,919 | 78,601,441 | 46,956,000 | 3,996,000 | 2,334,720 | ||
| 36 | Mar 15, 2026 04:58 | 3,932 | 77,081,340 | 48,107,000 | 3,006,000 | 2,412,544 | ||
| 37 | Mar 15, 2026 04:57 | 3,989 | 79,204,786 | 50,854,000 | 997,000 | 2,506,752 | ||
| 38 | Mar 15, 2026 04:57 | 4,054 | 76,782,426 | 51,687,000 | 1,013,000 | 2,400,256 | ||
| 39 | Mar 15, 2026 04:58 | 4,094 | 77,763,557 | 47,202,000 | 6,025,000 | 2,293,760 | ||
| 40 | Mar 15, 2026 04:57 | 4,106 | 77,176,207 | 48,348,000 | 5,036,000 | 2,461,696 | ||
| 41 | Mar 15, 2026 05:01 | 4,132 | 81,312,166 | 49,659,000 | 4,053,000 | 2,347,008 | ||
| 42 | Mar 15, 2026 05:01 | 4,152 | 81,069,237 | 49,977,000 | 3,998,000 | 2,449,408 | ||
| 43 | Mar 15, 2026 04:57 | 4,233 | 83,281,466 | 51,028,000 | 4,002,000 | 2,367,488 | ||
| 44 | Mar 15, 2026 04:58 | 4,317 | 82,433,241 | 54,123,000 | 2,004,000 | 2,338,816 | ||
| 45 | Mar 15, 2026 04:57 | 4,380 | 81,963,126 | 52,950,000 | 3,996,000 | 2,494,464 | ||
| 46 | Mar 15, 2026 04:59 | 4,475 | 87,722,870 | 54,163,000 | 4,012,000 | 2,351,104 | ||
| 47 | Mar 15, 2026 04:58 | 4,528 | 91,204,057 | 56,871,000 | 1,995,000 | 2,486,272 | ||
| 48 | Mar 15, 2026 04:57 | 4,582 | 85,009,764 | 53,514,000 | 6,058,000 | 2,285,568 |