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 20, 2026 22:23 | 2,039 | 48,944,433 | 22,430,000 | 4,078,000 | 2,285,568 | ||
| 2 | Mar 20, 2026 22:24 | 2,049 | 49,520,405 | 24,590,000 | 2,049,000 | 2,351,104 | ||
| 3 | Mar 21, 2026 04:30 | 2,052 | 52,348,332 | 24,621,000 | 2,051,000 | 2,371,584 | ||
| 4 | Mar 20, 2026 22:24 | 2,057 | 53,437,037 | 24,683,000 | 2,056,000 | 2,363,392 | ||
| 5 | Mar 20, 2026 20:30 | 2,079 | 51,765,737 | 25,023,000 | 2,001,000 | 2,383,872 | ||
| 6 | Mar 27, 2026 14:36 | 2,079 | 56,655,095 | 23,021,000 | 4,003,000 | 2,314,240 | ||
| 7 | Mar 27, 2026 14:36 | 2,084 | 51,503,343 | 25,084,000 | 2,006,000 | 2,351,104 | ||
| 8 | Mar 21, 2026 04:35 | 2,098 | 53,762,607 | 23,234,000 | 4,040,000 | 2,322,432 | ||
| 9 | Mar 20, 2026 20:30 | 2,101 | 53,860,311 | 20,230,000 | 7,080,000 | 2,445,312 | ||
| 10 | Mar 30, 2026 01:46 | 2,105 | 50,020,499 | 25,336,000 | 2,026,000 | 2,510,848 | ||
| 11 | Mar 20, 2026 21:16 | 2,119 | 46,319,484 | 22,443,000 | 5,100,000 | 2,318,336 | ||
| 12 | Mar 20, 2026 22:22 | 2,122 | 49,758,649 | 24,521,000 | 3,065,000 | 2,318,336 | ||
| 13 | Mar 20, 2026 21:16 | 2,124 | 55,242,100 | 25,566,000 | 2,045,000 | 2,297,856 | ||
| 14 | Mar 21, 2026 04:30 | 2,144 | 52,279,835 | 25,880,000 | 1,990,000 | 2,420,736 | ||
| 15 | Mar 20, 2026 21:16 | 2,146 | 50,020,207 | 23,912,000 | 3,985,000 | 2,310,144 | ||
| 16 | Mar 20, 2026 20:30 | 2,148 | 55,062,660 | 22,939,000 | 4,986,000 | 2,486,272 | ||
| 17 | Mar 20, 2026 22:24 | 2,148 | 51,296,748 | 23,932,000 | 3,988,000 | 2,486,272 | ||
| 18 | Mar 20, 2026 22:24 | 2,149 | 50,845,973 | 24,942,000 | 2,993,000 | 2,281,472 | ||
| 19 | Mar 20, 2026 22:23 | 2,151 | 51,673,757 | 23,968,000 | 3,994,000 | 2,461,696 | ||
| 20 | Mar 20, 2026 22:22 | 2,155 | 51,238,686 | 24,016,000 | 4,002,000 | 2,367,488 | ||
| 21 | Mar 20, 2026 22:24 | 2,155 | 56,559,071 | 25,017,000 | 3,002,000 | 2,523,136 | ||
| 22 | Mar 20, 2026 20:30 | 2,157 | 50,320,983 | 24,039,000 | 4,006,000 | 2,289,664 | ||
| 23 | Mar 20, 2026 20:30 | 2,171 | 52,677,354 | 24,187,000 | 4,031,000 | 2,301,952 | ||
| 24 | Mar 21, 2026 04:30 | 2,173 | 53,193,823 | 24,215,000 | 4,035,000 | 2,347,008 | ||
| 25 | Mar 20, 2026 22:24 | 2,178 | 57,636,891 | 25,278,000 | 3,033,000 | 2,322,432 | ||
| 26 | Mar 21, 2026 04:30 | 2,179 | 53,639,015 | 25,296,000 | 3,035,000 | 2,494,464 | ||
| 27 | Mar 21, 2026 04:30 | 2,180 | 57,297,973 | 23,275,000 | 5,059,000 | 2,318,336 | ||
| 28 | Mar 20, 2026 20:30 | 2,182 | 48,405,063 | 22,287,000 | 6,078,000 | 2,318,336 | ||
| 29 | Mar 21, 2026 04:35 | 2,191 | 50,402,126 | 24,414,000 | 4,069,000 | 2,293,760 | ||
| 30 | Mar 20, 2026 22:24 | 2,202 | 59,856,125 | 22,488,000 | 6,133,000 | 2,326,528 | ||
| 31 | Mar 20, 2026 21:16 | 2,205 | 56,373,370 | 28,671,000 | 0 | 2,510,848 | ||
| 32 | Mar 30, 2026 01:46 | 2,210 | 57,777,772 | 26,676,000 | 2,052,000 | 2,367,488 | ||
| 33 | Mar 27, 2026 14:36 | 2,221 | 53,625,180 | 25,881,000 | 2,986,000 | 2,383,872 | ||
| 34 | Mar 21, 2026 04:30 | 2,222 | 50,983,696 | 24,905,000 | 3,984,000 | 2,408,448 | ||
| 35 | Mar 21, 2026 04:30 | 2,223 | 51,183,663 | 25,906,000 | 2,989,000 | 2,428,928 | ||
| 36 | Mar 20, 2026 20:30 | 2,240 | 58,707,929 | 23,096,000 | 6,025,000 | 2,269,184 | ||
| 37 | Mar 20, 2026 21:16 | 2,251 | 67,612,645 | 27,246,000 | 2,018,000 | 2,285,568 | ||
| 38 | Mar 20, 2026 20:30 | 2,266 | 54,381,951 | 26,414,000 | 3,047,000 | 2,289,664 | ||
| 39 | Mar 20, 2026 21:16 | 2,273 | 53,156,995 | 26,493,000 | 3,056,000 | 2,330,624 | ||
| 40 | Mar 20, 2026 20:30 | 2,299 | 57,310,614 | 27,897,000 | 1,992,000 | 2,457,600 | ||
| 41 | Mar 21, 2026 04:30 | 2,299 | 58,238,352 | 26,897,000 | 2,988,000 | 2,510,848 | ||
| 42 | Mar 20, 2026 21:16 | 2,301 | 56,354,314 | 28,917,000 | 997,000 | 2,510,848 | ||
| 43 | Mar 20, 2026 22:23 | 2,306 | 58,451,936 | 24,981,000 | 4,996,000 | 2,363,392 | ||
| 44 | Mar 21, 2026 04:35 | 2,324 | 68,643,550 | 26,182,000 | 4,028,000 | 2,306,048 | ||
| 45 | Mar 20, 2026 21:16 | 2,331 | 51,644,579 | 26,263,000 | 4,040,000 | 2,400,256 | ||
| 46 | Mar 20, 2026 22:24 | 2,336 | 55,834,324 | 26,314,000 | 4,048,000 | 2,342,912 | ||
| 47 | Mar 30, 2026 01:46 | 2,386 | 58,548,412 | 28,018,000 | 3,002,000 | 2,453,504 | ||
| 48 | Mar 20, 2026 22:22 | 2,409 | 54,832,472 | 26,271,000 | 5,052,000 | 2,445,312 | ||
| 49 | Mar 20, 2026 22:24 | 2,424 | 49,764,564 | 28,457,000 | 3,049,000 | 2,519,040 | ||
| 50 | Mar 21, 2026 04:30 | 2,442 | 55,360,810 | 28,672,000 | 3,072,000 | 2,322,432 | ||
| 51 | Mar 20, 2026 21:16 | 2,744 | 68,249,277 | 31,707,000 | 3,963,000 | 2,506,752 |