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 14:32 | 3,277 | 72,439,576 | 39,559,000 | 3,043,000 | 2,457,600 | ||
| 2 | Dec 29, 2025 14:44 | 3,305 | 68,851,315 | 39,970,000 | 2,997,000 | 2,347,008 | ||
| 3 | Dec 29, 2025 14:37 | 3,323 | 70,104,794 | 37,172,000 | 6,027,000 | 2,379,776 | ||
| 4 | Dec 29, 2025 14:32 | 3,324 | 77,775,471 | 40,202,000 | 3,015,000 | 2,433,024 | ||
| 5 | Dec 29, 2025 14:38 | 3,403 | 70,722,228 | 40,212,000 | 4,021,000 | 2,293,760 | ||
| 6 | Dec 29, 2025 14:37 | 3,406 | 69,979,028 | 40,257,000 | 4,025,000 | 2,469,888 | ||
| 7 | Dec 29, 2025 14:33 | 3,406 | 77,292,592 | 39,242,000 | 5,031,000 | 2,396,160 | ||
| 8 | Dec 29, 2025 14:32 | 3,412 | 66,470,244 | 42,341,000 | 2,016,000 | 2,338,816 | ||
| 9 | Dec 29, 2025 14:32 | 3,431 | 70,445,906 | 41,561,000 | 3,041,000 | 2,457,600 | ||
| 10 | Dec 29, 2025 14:31 | 3,437 | 71,690,878 | 43,664,000 | 1,015,000 | 2,375,680 | ||
| 11 | Dec 29, 2025 14:30 | 3,453 | 69,254,799 | 42,891,000 | 1,994,000 | 2,453,504 | ||
| 12 | Dec 29, 2025 14:32 | 3,481 | 75,611,697 | 40,226,000 | 5,028,000 | 2,387,968 | ||
| 13 | Dec 29, 2025 14:40 | 3,513 | 76,016,911 | 41,605,000 | 4,059,000 | 2,342,912 | ||
| 14 | Dec 29, 2025 14:32 | 3,536 | 73,575,201 | 43,974,000 | 1,998,000 | 2,404,352 | ||
| 15 | Dec 29, 2025 14:41 | 3,552 | 69,381,960 | 42,160,000 | 4,015,000 | 2,457,600 | ||
| 16 | Dec 29, 2025 14:35 | 3,556 | 73,071,170 | 40,195,000 | 6,029,000 | 2,330,624 | ||
| 17 | Dec 29, 2025 14:38 | 3,564 | 67,552,609 | 40,288,000 | 6,043,000 | 2,469,888 | ||
| 18 | Dec 29, 2025 14:46 | 3,605 | 72,936,889 | 43,876,000 | 2,991,000 | 2,273,280 | ||
| 19 | Dec 29, 2025 14:33 | 3,624 | 84,061,856 | 43,100,000 | 4,009,000 | 2,375,680 | ||
| 20 | Dec 29, 2025 14:41 | 3,625 | 78,692,894 | 43,118,000 | 4,010,000 | 2,367,488 | ||
| 21 | Dec 29, 2025 14:32 | 3,629 | 73,061,132 | 42,164,000 | 5,019,000 | 2,375,680 | ||
| 22 | Dec 29, 2025 14:35 | 3,682 | 77,850,453 | 45,871,000 | 1,994,000 | 2,334,720 | ||
| 23 | Dec 29, 2025 14:41 | 3,706 | 73,337,403 | 43,161,000 | 5,018,000 | 2,387,968 | ||
| 24 | Dec 29, 2025 14:33 | 3,743 | 74,674,420 | 45,624,000 | 3,041,000 | 2,396,160 | ||
| 25 | Dec 29, 2025 14:43 | 3,780 | 84,151,273 | 47,139,000 | 2,005,000 | 2,486,272 | ||
| 26 | Dec 29, 2025 14:32 | 3,792 | 71,604,034 | 44,270,000 | 5,030,000 | 2,334,720 | ||
| 27 | Dec 29, 2025 14:43 | 3,804 | 74,497,210 | 45,416,000 | 4,037,000 | 2,351,104 | ||
| 28 | Dec 29, 2025 14:32 | 3,836 | 79,925,359 | 47,877,000 | 1,994,000 | 2,490,368 | ||
| 29 | Dec 29, 2025 14:31 | 3,838 | 79,491,837 | 45,899,000 | 3,991,000 | 2,437,120 | ||
| 30 | Dec 29, 2025 14:46 | 3,850 | 76,722,703 | 48,050,000 | 2,002,000 | 2,510,848 | ||
| 31 | Dec 29, 2025 14:38 | 3,866 | 83,295,096 | 46,240,000 | 4,020,000 | 2,408,448 | ||
| 32 | Dec 29, 2025 14:46 | 3,872 | 74,596,648 | 46,313,000 | 4,027,000 | 2,375,680 | ||
| 33 | Dec 29, 2025 14:44 | 3,901 | 80,848,080 | 46,661,000 | 4,057,000 | 2,342,912 | ||
| 34 | Dec 29, 2025 14:31 | 3,904 | 75,789,234 | 48,722,000 | 2,030,000 | 2,375,680 | ||
| 35 | Dec 29, 2025 14:43 | 3,932 | 78,745,112 | 48,110,000 | 3,006,000 | 2,379,776 | ||
| 36 | Dec 29, 2025 14:33 | 3,940 | 75,942,607 | 49,207,000 | 2,008,000 | 2,289,664 | ||
| 37 | Dec 29, 2025 14:30 | 3,945 | 79,298,735 | 49,275,000 | 2,011,000 | 2,310,144 | ||
| 38 | Dec 29, 2025 14:35 | 3,964 | 79,601,490 | 47,495,000 | 4,042,000 | 2,371,584 | ||
| 39 | Dec 29, 2025 14:32 | 3,978 | 77,395,148 | 49,720,000 | 1,988,000 | 2,273,280 | ||
| 40 | Dec 29, 2025 14:31 | 3,995 | 76,747,652 | 47,864,000 | 4,073,000 | 2,375,680 | ||
| 41 | Dec 29, 2025 14:33 | 4,009 | 78,200,049 | 49,116,000 | 3,007,000 | 2,330,624 | ||
| 42 | Dec 29, 2025 14:30 | 4,023 | 77,013,536 | 49,278,000 | 3,017,000 | 2,392,064 | ||
| 43 | Dec 29, 2025 14:32 | 4,039 | 75,804,474 | 50,488,000 | 2,019,000 | 2,285,568 | ||
| 44 | Dec 29, 2025 14:33 | 4,066 | 83,048,009 | 48,868,000 | 3,989,000 | 2,293,760 | ||
| 45 | Dec 29, 2025 14:32 | 4,073 | 77,524,001 | 47,960,000 | 4,995,000 | 2,519,040 | ||
| 46 | Dec 29, 2025 14:44 | 4,095 | 78,683,455 | 51,225,000 | 2,008,000 | 2,433,024 | ||
| 47 | Dec 29, 2025 14:37 | 4,108 | 80,910,394 | 50,381,000 | 3,022,000 | 2,330,624 | ||
| 48 | Dec 29, 2025 14:40 | 4,182 | 79,137,219 | 49,335,000 | 5,034,000 | 2,273,280 | ||
| 49 | Dec 29, 2025 14:31 | 4,207 | 80,999,978 | 52,672,000 | 2,025,000 | 2,392,064 | ||
| 50 | Dec 29, 2025 14:40 | 4,227 | 85,935,520 | 53,956,000 | 999,000 | 2,387,968 | ||
| 51 | Dec 29, 2025 14:31 | 4,382 | 85,430,051 | 53,967,000 | 2,998,000 | 2,334,720 |