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 05:28 | 2,623 | 61,491,062 | 31,087,000 | 3,008,000 | 2,269,184 | ||
| 2 | Mar 20, 2026 05:36 | 2,730 | 59,508,456 | 33,464,000 | 2,028,000 | 2,367,488 | ||
| 3 | Mar 20, 2026 05:37 | 2,746 | 66,154,121 | 29,579,000 | 6,119,000 | 2,494,464 | ||
| 4 | Mar 20, 2026 05:28 | 2,796 | 59,434,047 | 33,322,000 | 3,029,000 | 2,379,776 | ||
| 5 | Mar 20, 2026 05:37 | 2,845 | 63,887,054 | 29,992,000 | 6,998,000 | 2,416,640 | ||
| 6 | Mar 20, 2026 05:28 | 2,853 | 61,246,899 | 33,080,000 | 4,009,000 | 2,486,272 | ||
| 7 | Mar 20, 2026 05:37 | 2,919 | 67,546,279 | 32,955,000 | 4,993,000 | 2,396,160 | ||
| 8 | Mar 20, 2026 05:28 | 2,929 | 73,448,905 | 34,064,000 | 4,007,000 | 2,490,368 | ||
| 9 | Mar 20, 2026 05:28 | 2,946 | 65,487,638 | 35,276,000 | 3,023,000 | 2,293,760 | ||
| 10 | Mar 20, 2026 05:36 | 2,977 | 63,477,428 | 34,632,000 | 4,074,000 | 2,400,256 | ||
| 11 | Mar 20, 2026 05:37 | 2,978 | 66,565,930 | 34,639,000 | 4,075,000 | 2,306,048 | ||
| 12 | Mar 20, 2026 05:36 | 2,988 | 66,218,436 | 34,859,000 | 3,983,000 | 2,473,984 | ||
| 13 | Mar 20, 2026 05:28 | 2,991 | 61,931,727 | 33,896,000 | 4,984,000 | 2,478,080 | ||
| 14 | Mar 20, 2026 05:36 | 3,018 | 63,961,477 | 36,212,000 | 3,017,000 | 2,301,952 | ||
| 15 | Mar 20, 2026 05:28 | 3,041 | 65,351,939 | 34,460,000 | 5,067,000 | 2,351,104 | ||
| 16 | Mar 20, 2026 05:28 | 3,118 | 67,570,609 | 36,486,000 | 4,054,000 | 2,289,664 | ||
| 17 | Mar 20, 2026 05:36 | 3,122 | 67,720,276 | 35,510,000 | 5,072,000 | 2,486,272 | ||
| 18 | Mar 20, 2026 05:28 | 3,124 | 67,458,474 | 36,553,000 | 4,061,000 | 2,289,664 | ||
| 19 | Mar 20, 2026 05:37 | 3,131 | 72,167,916 | 37,645,000 | 3,052,000 | 2,486,272 | ||
| 20 | Mar 20, 2026 05:28 | 3,152 | 63,189,465 | 37,980,000 | 2,998,000 | 2,289,664 | ||
| 21 | Mar 20, 2026 05:37 | 3,174 | 71,081,161 | 38,246,000 | 3,019,000 | 2,383,872 | ||
| 22 | Mar 20, 2026 05:36 | 3,176 | 72,585,551 | 38,270,000 | 3,021,000 | 2,293,760 | ||
| 23 | Mar 20, 2026 05:28 | 3,179 | 64,310,740 | 37,300,000 | 4,032,000 | 2,506,752 | ||
| 24 | Mar 20, 2026 05:36 | 3,182 | 68,988,027 | 38,336,000 | 3,026,000 | 2,285,568 | ||
| 25 | Mar 20, 2026 05:37 | 3,188 | 68,002,239 | 38,412,000 | 3,032,000 | 2,359,296 | ||
| 26 | Mar 20, 2026 05:28 | 3,201 | 72,823,380 | 38,570,000 | 3,045,000 | 2,539,520 | ||
| 27 | Mar 20, 2026 05:36 | 3,215 | 68,120,701 | 38,814,000 | 2,985,000 | 2,437,120 | ||
| 28 | Mar 20, 2026 05:28 | 3,216 | 71,262,233 | 36,831,000 | 4,977,000 | 2,297,856 | ||
| 29 | Mar 20, 2026 05:37 | 3,230 | 66,110,539 | 37,986,000 | 3,998,000 | 2,412,544 | ||
| 30 | Mar 20, 2026 05:36 | 3,262 | 65,688,099 | 39,372,000 | 3,028,000 | 2,428,928 | ||
| 31 | Mar 20, 2026 05:36 | 3,281 | 68,363,479 | 39,610,000 | 3,046,000 | 2,457,600 | ||
| 32 | Mar 20, 2026 05:28 | 3,281 | 68,132,514 | 39,610,000 | 3,046,000 | 2,433,024 | ||
| 33 | Mar 20, 2026 05:37 | 3,300 | 65,269,716 | 35,916,000 | 6,983,000 | 2,449,408 | ||
| 34 | Mar 20, 2026 05:28 | 3,317 | 67,249,261 | 38,108,000 | 5,014,000 | 2,310,144 | ||
| 35 | Mar 20, 2026 05:37 | 3,349 | 65,403,161 | 39,484,000 | 4,049,000 | 2,445,312 | ||
| 36 | Mar 20, 2026 05:28 | 3,438 | 77,957,929 | 39,612,000 | 5,078,000 | 2,531,328 | ||
| 37 | Mar 20, 2026 05:36 | 3,515 | 77,478,830 | 39,605,000 | 6,093,000 | 2,318,336 | ||
| 38 | Mar 20, 2026 05:28 | 3,609 | 75,653,945 | 42,930,000 | 3,993,000 | 2,519,040 | ||
| 39 | Mar 20, 2026 05:28 | 3,629 | 71,455,391 | 44,163,000 | 3,011,000 | 2,494,464 | ||
| 40 | Mar 20, 2026 05:36 | 3,656 | 69,973,245 | 43,484,000 | 4,045,000 | 2,351,104 | ||
| 41 | Mar 20, 2026 05:37 | 3,688 | 69,284,149 | 43,947,000 | 3,995,000 | 2,297,856 | ||
| 42 | Mar 20, 2026 05:37 | 3,765 | 77,245,239 | 41,954,000 | 6,992,000 | 2,301,952 |