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 19, 2026 02:04 | 19,189 | 278,617,098 | 239,444,000 | 10,018,000 | 2,420,736 | ||
| 2 | Mar 19, 2026 02:04 | 19,307 | 275,063,649 | 240,994,000 | 9,999,000 | 2,269,184 | ||
| 3 | Mar 19, 2026 15:20 | 19,782 | 285,130,117 | 248,156,000 | 9,005,000 | 2,326,528 | ||
| 4 | Mar 19, 2026 02:04 | 20,650 | 295,827,915 | 256,434,000 | 12,020,000 | 2,269,184 | ||
| 5 | Mar 20, 2026 09:32 | 21,313 | 299,843,737 | 266,065,000 | 11,002,000 | 2,453,504 | ||
| 6 | Mar 19, 2026 19:08 | 21,314 | 297,670,472 | 265,079,000 | 12,003,000 | 2,404,352 | ||
| 7 | Mar 19, 2026 15:20 | 21,382 | 302,975,475 | 265,963,000 | 11,998,000 | 2,265,088 | ||
| 8 | Mar 19, 2026 16:42 | 21,445 | 312,047,553 | 267,794,000 | 10,991,000 | 2,265,088 | ||
| 9 | Mar 21, 2026 14:10 | 21,452 | 311,124,641 | 269,885,000 | 8,996,000 | 2,318,336 | ||
| 10 | Mar 21, 2026 03:55 | 21,686 | 305,083,151 | 272,915,000 | 8,997,000 | 2,289,664 | ||
| 11 | Mar 19, 2026 16:20 | 22,230 | 311,853,929 | 277,993,000 | 10,999,000 | 2,383,872 | ||
| 12 | Mar 19, 2026 19:33 | 22,394 | 322,911,670 | 279,119,000 | 12,005,000 | 2,482,176 | ||
| 13 | Mar 19, 2026 19:33 | 22,443 | 320,832,085 | 280,770,000 | 10,991,000 | 2,449,408 | ||
| 14 | Mar 19, 2026 15:20 | 22,666 | 320,982,985 | 282,675,000 | 11,986,000 | 2,301,952 | ||
| 15 | Mar 21, 2026 03:55 | 22,726 | 323,179,181 | 290,425,000 | 5,007,000 | 2,375,680 | ||
| 16 | Mar 19, 2026 02:04 | 22,770 | 320,157,880 | 283,008,000 | 13,000,000 | 2,428,928 | ||
| 17 | Mar 19, 2026 14:05 | 22,883 | 331,210,212 | 288,466,000 | 9,014,000 | 2,310,144 | ||
| 18 | Mar 19, 2026 06:02 | 23,030 | 331,028,174 | 287,379,000 | 12,015,000 | 2,260,992 | ||
| 19 | Mar 19, 2026 16:20 | 23,114 | 332,002,334 | 294,467,000 | 6,009,000 | 2,433,024 | ||
| 20 | Mar 19, 2026 15:26 | 23,130 | 328,171,652 | 291,694,000 | 8,990,000 | 2,347,008 | ||
| 21 | Mar 21, 2026 14:10 | 23,199 | 328,434,656 | 288,610,000 | 12,982,000 | 2,301,952 | ||
| 22 | Mar 19, 2026 02:04 | 23,439 | 339,445,689 | 291,724,000 | 12,987,000 | 2,433,024 | ||
| 23 | Mar 20, 2026 09:32 | 23,451 | 334,079,741 | 295,868,000 | 8,995,000 | 2,502,656 | ||
| 24 | Mar 19, 2026 19:08 | 23,512 | 337,266,673 | 294,671,000 | 10,987,000 | 2,469,888 | ||
| 25 | Mar 19, 2026 06:02 | 23,697 | 334,313,245 | 299,055,000 | 9,001,000 | 2,502,656 | ||
| 26 | Mar 19, 2026 02:04 | 23,732 | 334,757,169 | 297,539,000 | 10,983,000 | 2,502,656 | ||
| 27 | Mar 19, 2026 16:42 | 23,819 | 341,552,303 | 296,660,000 | 12,985,000 | 2,400,256 | ||
| 28 | Mar 19, 2026 02:04 | 23,864 | 336,099,097 | 304,228,000 | 6,004,000 | 2,400,256 | ||
| 29 | Mar 21, 2026 03:55 | 23,957 | 341,884,463 | 302,428,000 | 9,012,000 | 2,445,312 | ||
| 30 | Mar 19, 2026 15:26 | 24,001 | 338,789,839 | 304,009,000 | 8,000,000 | 2,437,120 | ||
| 31 | Mar 21, 2026 14:10 | 24,405 | 339,400,753 | 308,262,000 | 9,007,000 | 2,473,984 | ||
| 32 | Mar 19, 2026 14:05 | 24,855 | 348,642,312 | 315,113,000 | 8,002,000 | 2,469,888 | ||
| 33 | Mar 21, 2026 14:11 | 24,947 | 357,579,927 | 317,301,000 | 7,006,000 | 2,433,024 | ||
| 34 | Mar 19, 2026 02:04 | 25,130 | 350,517,142 | 315,704,000 | 10,989,000 | 2,424,832 | ||
| 35 | Mar 21, 2026 14:11 | 25,296 | 352,406,546 | 318,855,000 | 9,995,000 | 2,478,080 | ||
| 36 | Mar 19, 2026 15:26 | 25,404 | 364,072,956 | 321,251,000 | 9,007,000 | 2,379,776 | ||
| 37 | Mar 19, 2026 19:33 | 25,437 | 357,162,810 | 320,685,000 | 9,990,000 | 2,347,008 | ||
| 38 | Mar 19, 2026 16:20 | 25,475 | 360,836,987 | 320,165,000 | 11,005,000 | 2,293,760 | ||
| 39 | Mar 19, 2026 16:42 | 25,982 | 360,944,626 | 327,768,000 | 9,992,000 | 2,383,872 | ||
| 40 | Mar 19, 2026 14:05 | 26,007 | 365,178,662 | 330,084,000 | 8,002,000 | 2,510,848 | ||
| 41 | Mar 19, 2026 19:08 | 26,019 | 360,609,843 | 330,247,000 | 8,005,000 | 2,449,408 | ||
| 42 | Mar 21, 2026 14:11 | 26,114 | 367,128,602 | 326,465,000 | 13,018,000 | 2,379,776 | ||
| 43 | Mar 19, 2026 06:02 | 26,751 | 374,921,501 | 339,770,000 | 7,994,000 | 2,318,336 | ||
| 44 | Mar 20, 2026 09:32 | 27,231 | 385,483,153 | 345,999,000 | 7,999,000 | 2,322,432 | ||
| 45 | Mar 19, 2026 02:04 | 28,206 | 388,866,182 | 361,681,000 | 4,995,000 | 2,297,856 |