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 13:04 | 13,753 | 197,984,882 | 171,803,000 | 6,992,000 | 2,326,528 | ||
| 2 | Mar 19, 2026 13:04 | 14,004 | 207,136,652 | 173,055,000 | 9,002,000 | 2,297,856 | ||
| 3 | Mar 19, 2026 13:24 | 14,077 | 206,753,509 | 169,999,000 | 12,999,000 | 2,392,064 | ||
| 4 | Mar 19, 2026 12:44 | 14,137 | 212,286,664 | 174,793,000 | 8,989,000 | 2,269,184 | ||
| 5 | Mar 19, 2026 12:36 | 14,215 | 210,544,671 | 172,808,000 | 11,986,000 | 2,486,272 | ||
| 6 | Mar 19, 2026 12:43 | 14,661 | 218,144,437 | 181,561,000 | 9,027,000 | 2,260,992 | ||
| 7 | Mar 19, 2026 13:06 | 14,870 | 221,327,440 | 182,294,000 | 11,017,000 | 2,314,240 | ||
| 8 | Mar 19, 2026 12:59 | 14,909 | 218,108,964 | 180,829,000 | 12,987,000 | 2,273,280 | ||
| 9 | Mar 19, 2026 13:24 | 14,956 | 223,990,393 | 185,403,000 | 9,019,000 | 2,445,312 | ||
| 10 | Mar 19, 2026 13:04 | 15,021 | 225,138,054 | 188,263,000 | 7,009,000 | 2,277,376 | ||
| 11 | Mar 19, 2026 12:26 | 15,178 | 223,735,070 | 190,300,000 | 7,011,000 | 2,441,216 | ||
| 12 | Mar 19, 2026 12:59 | 15,194 | 224,815,724 | 189,499,000 | 8,021,000 | 2,416,640 | ||
| 13 | Mar 19, 2026 12:32 | 15,212 | 226,540,944 | 189,770,000 | 7,990,000 | 2,400,256 | ||
| 14 | Mar 19, 2026 12:32 | 15,232 | 227,960,161 | 185,016,000 | 13,001,000 | 2,326,528 | ||
| 15 | Mar 19, 2026 13:08 | 15,245 | 221,071,004 | 184,172,000 | 14,013,000 | 2,363,392 | ||
| 16 | Mar 19, 2026 13:30 | 15,265 | 225,129,398 | 190,432,000 | 8,018,000 | 2,461,696 | ||
| 17 | Mar 19, 2026 13:30 | 15,336 | 228,676,979 | 184,335,000 | 15,027,000 | 2,265,088 | ||
| 18 | Mar 19, 2026 12:54 | 15,461 | 231,824,288 | 189,992,000 | 10,999,000 | 2,486,272 | ||
| 19 | Mar 19, 2026 13:13 | 15,463 | 220,344,260 | 190,014,000 | 11,000,000 | 2,469,888 | ||
| 20 | Mar 19, 2026 13:13 | 15,508 | 233,480,599 | 190,566,000 | 11,032,000 | 2,428,928 | ||
| 21 | Mar 19, 2026 12:26 | 15,531 | 232,579,068 | 189,914,000 | 11,994,000 | 2,265,088 | ||
| 22 | Mar 19, 2026 13:04 | 15,579 | 226,241,926 | 194,512,000 | 8,021,000 | 2,416,640 | ||
| 23 | Mar 19, 2026 12:26 | 15,619 | 228,737,699 | 191,050,000 | 12,003,000 | 2,396,160 | ||
| 24 | Mar 19, 2026 12:48 | 15,630 | 232,458,316 | 195,185,000 | 8,007,000 | 2,351,104 | ||
| 25 | Mar 19, 2026 12:26 | 15,736 | 233,868,474 | 200,552,000 | 4,011,000 | 2,506,752 | ||
| 26 | Mar 19, 2026 12:44 | 15,738 | 232,939,776 | 196,567,000 | 8,023,000 | 2,260,992 | ||
| 27 | Mar 19, 2026 13:04 | 15,768 | 228,554,087 | 196,985,000 | 7,999,000 | 2,461,696 | ||
| 28 | Mar 19, 2026 12:26 | 15,784 | 228,512,518 | 195,188,000 | 10,009,000 | 2,342,912 | ||
| 29 | Mar 19, 2026 13:08 | 15,809 | 230,471,198 | 195,490,000 | 10,025,000 | 2,449,408 | ||
| 30 | Mar 19, 2026 13:17 | 15,842 | 234,209,925 | 194,946,000 | 10,996,000 | 2,260,992 | ||
| 31 | Mar 19, 2026 13:20 | 15,854 | 228,363,991 | 196,097,000 | 10,004,000 | 2,351,104 | ||
| 32 | Mar 19, 2026 12:54 | 15,865 | 234,071,916 | 197,240,000 | 9,010,000 | 2,371,584 | ||
| 33 | Mar 19, 2026 13:24 | 15,874 | 235,938,214 | 199,349,000 | 7,012,000 | 2,330,624 | ||
| 34 | Mar 19, 2026 12:57 | 15,915 | 230,975,475 | 201,901,000 | 4,997,000 | 2,408,448 | ||
| 35 | Mar 19, 2026 13:28 | 15,916 | 232,963,347 | 202,909,000 | 3,998,000 | 2,277,376 | ||
| 36 | Mar 19, 2026 12:32 | 15,978 | 234,388,859 | 198,730,000 | 8,987,000 | 2,342,912 | ||
| 37 | Mar 19, 2026 13:28 | 16,144 | 234,649,103 | 199,882,000 | 9,994,000 | 2,351,104 | ||
| 38 | Mar 19, 2026 12:57 | 16,150 | 238,039,634 | 207,952,000 | 1,999,000 | 2,416,640 | ||
| 39 | Mar 19, 2026 13:06 | 16,153 | 235,868,625 | 200,985,000 | 8,999,000 | 2,334,720 | ||
| 40 | Mar 19, 2026 12:50 | 16,164 | 233,242,350 | 202,122,000 | 8,004,000 | 2,293,760 | ||
| 41 | Mar 19, 2026 13:17 | 16,289 | 236,295,136 | 198,774,000 | 12,985,000 | 2,273,280 | ||
| 42 | Mar 19, 2026 12:57 | 16,369 | 234,915,053 | 204,804,000 | 7,992,000 | 2,486,272 | ||
| 43 | Mar 19, 2026 12:26 | 16,369 | 236,312,642 | 203,810,000 | 8,991,000 | 2,306,048 | ||
| 44 | Mar 19, 2026 12:28 | 16,443 | 249,340,062 | 203,770,000 | 9,988,000 | 2,297,856 | ||
| 45 | Mar 19, 2026 12:59 | 16,560 | 247,359,312 | 207,264,000 | 8,010,000 | 2,387,968 | ||
| 46 | Mar 19, 2026 13:04 | 16,562 | 248,520,612 | 205,287,000 | 10,014,000 | 2,318,336 | ||
| 47 | Mar 19, 2026 12:32 | 16,580 | 243,481,964 | 203,512,000 | 12,030,000 | 2,445,312 | ||
| 48 | Mar 19, 2026 12:56 | 16,643 | 243,881,193 | 203,332,000 | 13,021,000 | 2,437,120 | ||
| 49 | Mar 19, 2026 12:48 | 16,670 | 247,637,049 | 207,727,000 | 8,988,000 | 2,392,064 | ||
| 50 | Mar 19, 2026 12:54 | 16,674 | 246,902,217 | 207,772,000 | 8,990,000 | 2,441,216 | ||
| 51 | Mar 19, 2026 13:04 | 16,699 | 245,526,198 | 206,088,000 | 11,004,000 | 2,375,680 | ||
| 52 | Mar 19, 2026 13:19 | 16,737 | 248,256,709 | 210,561,000 | 7,018,000 | 2,338,816 | ||
| 53 | Mar 19, 2026 12:29 | 16,750 | 248,134,444 | 205,760,000 | 11,986,000 | 2,273,280 | ||
| 54 | Mar 19, 2026 12:26 | 16,764 | 241,629,510 | 209,932,000 | 7,997,000 | 2,404,352 | ||
| 55 | Mar 19, 2026 12:32 | 16,795 | 247,555,355 | 208,326,000 | 10,015,000 | 2,510,848 | ||
| 56 | Mar 19, 2026 13:28 | 16,796 | 246,681,736 | 208,332,000 | 10,015,000 | 2,342,912 | ||
| 57 | Mar 19, 2026 12:43 | 16,801 | 245,778,072 | 207,390,000 | 11,020,000 | 2,478,080 | ||
| 58 | Mar 19, 2026 13:04 | 16,835 | 246,759,098 | 208,865,000 | 9,993,000 | 2,293,760 | ||
| 59 | Mar 19, 2026 12:56 | 16,837 | 244,604,910 | 212,879,000 | 5,996,000 | 2,437,120 | ||
| 60 | Mar 19, 2026 13:13 | 16,919 | 248,552,551 | 211,946,000 | 7,997,000 | 2,478,080 | ||
| 61 | Mar 19, 2026 13:20 | 17,120 | 251,695,046 | 209,533,000 | 13,033,000 | 2,437,120 | ||
| 62 | Mar 19, 2026 12:29 | 17,134 | 247,057,125 | 207,764,000 | 14,983,000 | 2,437,120 | ||
| 63 | Mar 19, 2026 13:06 | 17,149 | 251,395,245 | 212,941,000 | 9,997,000 | 2,265,088 | ||
| 64 | Mar 19, 2026 12:44 | 17,256 | 254,141,240 | 216,312,000 | 8,011,000 | 2,310,144 | ||
| 65 | Mar 19, 2026 12:26 | 17,260 | 252,401,570 | 207,346,000 | 17,028,000 | 2,428,928 | ||
| 66 | Mar 19, 2026 12:36 | 17,307 | 249,262,258 | 213,998,000 | 10,999,000 | 2,486,272 | ||
| 67 | Mar 19, 2026 12:28 | 17,379 | 250,193,493 | 212,936,000 | 12,996,000 | 2,392,064 | ||
| 68 | Mar 19, 2026 13:04 | 17,392 | 256,346,145 | 220,096,000 | 6,002,000 | 2,404,352 | ||
| 69 | Mar 19, 2026 12:50 | 17,516 | 255,869,647 | 220,712,000 | 6,990,000 | 2,338,816 | ||
| 70 | Mar 19, 2026 13:20 | 17,549 | 260,351,151 | 219,132,000 | 9,005,000 | 2,519,040 | ||
| 71 | Mar 19, 2026 12:28 | 17,562 | 257,496,753 | 218,296,000 | 10,013,000 | 2,465,792 | ||
| 72 | Mar 19, 2026 12:43 | 17,610 | 251,730,332 | 218,936,000 | 9,997,000 | 2,437,120 | ||
| 73 | Mar 19, 2026 12:26 | 17,657 | 254,208,226 | 220,518,000 | 9,021,000 | 2,289,664 | ||
| 74 | Mar 19, 2026 13:17 | 17,749 | 258,852,972 | 221,749,000 | 8,989,000 | 2,478,080 | ||
| 75 | Mar 19, 2026 12:32 | 17,761 | 255,924,174 | 225,890,000 | 4,997,000 | 2,277,376 | ||
| 76 | Mar 19, 2026 13:19 | 17,800 | 262,983,109 | 222,385,000 | 9,015,000 | 2,334,720 | ||
| 77 | Mar 19, 2026 12:56 | 17,925 | 253,114,826 | 223,019,000 | 10,000,000 | 2,351,104 | ||
| 78 | Mar 19, 2026 12:29 | 18,004 | 259,046,919 | 219,046,000 | 15,003,000 | 2,416,640 | ||
| 79 | Mar 19, 2026 12:36 | 18,175 | 261,205,157 | 226,266,000 | 10,011,000 | 2,473,984 | ||
| 80 | Mar 19, 2026 12:48 | 18,184 | 265,234,989 | 229,377,000 | 7,011,000 | 2,404,352 | ||
| 81 | Mar 19, 2026 12:50 | 18,285 | 269,910,999 | 228,716,000 | 8,988,000 | 2,289,664 | ||
| 82 | Mar 19, 2026 13:08 | 18,288 | 274,356,979 | 229,747,000 | 7,991,000 | 2,494,464 | ||
| 83 | Mar 19, 2026 13:19 | 18,330 | 260,529,461 | 231,280,000 | 7,008,000 | 2,428,928 | ||
| 84 | Mar 19, 2026 13:30 | 18,780 | 278,199,033 | 236,140,000 | 8,004,000 | 2,383,872 |