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 26, 2025 23:39 | 4,085 | 84,146,503 | 50,100,000 | 3,006,000 | 2,351,104 | ||
| 2 | Dec 27, 2025 15:28 | 4,266 | 83,743,443 | 51,430,000 | 4,033,000 | 2,269,184 | ||
| 3 | Dec 27, 2025 15:52 | 4,493 | 79,572,559 | 55,390,000 | 3,021,000 | 2,277,376 | ||
| 4 | Dec 27, 2025 18:58 | 4,625 | 88,465,747 | 54,108,000 | 6,012,000 | 2,514,944 | ||
| 5 | Dec 26, 2025 23:38 | 4,647 | 93,413,923 | 57,390,000 | 3,020,000 | 2,383,872 | ||
| 6 | Dec 27, 2025 18:58 | 4,663 | 92,519,478 | 57,586,000 | 3,030,000 | 2,355,200 | ||
| 7 | Dec 27, 2025 15:28 | 4,738 | 88,181,428 | 60,581,000 | 1,009,000 | 2,400,256 | ||
| 8 | Dec 27, 2025 15:24 | 4,757 | 89,917,733 | 60,838,000 | 997,000 | 2,359,296 | ||
| 9 | Dec 26, 2025 23:39 | 4,757 | 94,036,038 | 58,850,000 | 2,992,000 | 2,289,664 | ||
| 10 | Dec 27, 2025 18:58 | 4,779 | 93,518,920 | 60,128,000 | 2,004,000 | 2,277,376 | ||
| 11 | Dec 27, 2025 15:55 | 4,801 | 91,629,501 | 59,396,000 | 3,020,000 | 2,424,832 | ||
| 12 | Dec 27, 2025 16:16 | 4,824 | 93,874,489 | 62,706,000 | 0 | 2,510,848 | ||
| 13 | Dec 27, 2025 15:28 | 4,885 | 93,114,979 | 60,480,000 | 3,024,000 | 2,478,080 | ||
| 14 | Dec 26, 2025 23:38 | 4,909 | 93,457,134 | 61,824,000 | 1,994,000 | 2,326,528 | ||
| 15 | Dec 27, 2025 15:24 | 4,969 | 103,393,173 | 58,538,000 | 6,055,000 | 2,355,200 | ||
| 16 | Dec 26, 2025 23:38 | 5,040 | 86,786,987 | 61,493,000 | 4,032,000 | 2,330,624 | ||
| 17 | Dec 26, 2025 23:40 | 5,079 | 96,302,521 | 61,031,000 | 5,002,000 | 2,338,816 | ||
| 18 | Dec 26, 2025 23:39 | 5,089 | 96,944,304 | 61,146,000 | 5,012,000 | 2,404,352 | ||
| 19 | Dec 26, 2025 23:38 | 5,128 | 90,323,071 | 63,640,000 | 3,030,000 | 2,433,024 | ||
| 20 | Dec 27, 2025 15:28 | 5,143 | 97,345,568 | 62,865,000 | 3,991,000 | 2,383,872 | ||
| 21 | Dec 26, 2025 23:38 | 5,164 | 93,010,076 | 65,124,000 | 2,003,000 | 2,408,448 | ||
| 22 | Dec 26, 2025 23:38 | 5,169 | 90,633,475 | 65,187,000 | 2,005,000 | 2,416,640 | ||
| 23 | Dec 26, 2025 23:39 | 5,179 | 91,993,741 | 62,307,000 | 5,024,000 | 2,387,968 | ||
| 24 | Dec 26, 2025 23:38 | 5,194 | 91,866,943 | 66,514,000 | 1,007,000 | 2,514,944 | ||
| 25 | Dec 26, 2025 23:38 | 5,208 | 103,001,917 | 66,696,000 | 1,010,000 | 2,412,544 | ||
| 26 | Dec 27, 2025 15:24 | 5,221 | 98,884,128 | 64,884,000 | 2,994,000 | 2,355,200 | ||
| 27 | Dec 27, 2025 15:24 | 5,273 | 98,366,708 | 67,541,000 | 1,008,000 | 2,314,240 | ||
| 28 | Dec 27, 2025 16:16 | 5,286 | 104,796,640 | 64,677,000 | 4,042,000 | 2,371,584 | ||
| 29 | Dec 26, 2025 23:39 | 5,297 | 97,345,278 | 65,869,000 | 2,994,000 | 2,396,160 | ||
| 30 | Dec 27, 2025 15:29 | 5,297 | 93,876,395 | 64,869,000 | 3,991,000 | 2,420,736 | ||
| 31 | Dec 27, 2025 15:52 | 5,297 | 99,362,917 | 65,865,000 | 2,993,000 | 2,334,720 | ||
| 32 | Dec 27, 2025 15:24 | 5,298 | 98,024,394 | 62,881,000 | 5,988,000 | 2,437,120 | ||
| 33 | Dec 26, 2025 23:38 | 5,326 | 92,114,278 | 64,220,000 | 5,017,000 | 2,441,216 | ||
| 34 | Dec 26, 2025 23:39 | 5,337 | 97,039,799 | 63,343,000 | 6,032,000 | 2,502,656 | ||
| 35 | Dec 26, 2025 23:39 | 5,354 | 100,423,562 | 67,585,000 | 2,017,000 | 2,437,120 | ||
| 36 | Dec 27, 2025 15:24 | 5,416 | 94,582,111 | 68,397,000 | 2,011,000 | 2,326,528 | ||
| 37 | Dec 27, 2025 15:55 | 5,469 | 93,601,220 | 66,089,000 | 5,006,000 | 2,461,696 | ||
| 38 | Dec 26, 2025 23:38 | 5,499 | 101,453,816 | 67,466,000 | 4,027,000 | 2,306,048 | ||
| 39 | Dec 27, 2025 15:52 | 5,583 | 101,845,820 | 68,553,000 | 4,032,000 | 2,355,200 | ||
| 40 | Dec 26, 2025 23:38 | 5,591 | 99,743,436 | 67,641,000 | 5,047,000 | 2,445,312 | ||
| 41 | Dec 26, 2025 23:40 | 5,629 | 104,070,705 | 68,166,000 | 5,012,000 | 2,375,680 | ||
| 42 | Dec 27, 2025 15:28 | 5,635 | 107,831,352 | 69,239,000 | 4,013,000 | 2,342,912 | ||
| 43 | Dec 26, 2025 23:40 | 5,696 | 98,508,106 | 71,052,000 | 3,002,000 | 2,473,984 | ||
| 44 | Dec 26, 2025 23:38 | 5,728 | 101,077,399 | 69,427,000 | 5,031,000 | 2,510,848 | ||
| 45 | Dec 26, 2025 23:38 | 5,756 | 105,286,225 | 72,836,000 | 1,995,000 | 2,338,816 | ||
| 46 | Dec 27, 2025 15:28 | 5,773 | 101,512,609 | 72,044,000 | 3,001,000 | 2,301,952 | ||
| 47 | Dec 27, 2025 16:16 | 5,786 | 98,568,602 | 71,208,000 | 4,011,000 | 2,498,560 | ||
| 48 | Dec 26, 2025 23:38 | 5,802 | 98,425,493 | 72,412,000 | 3,017,000 | 2,514,944 | ||
| 49 | Dec 26, 2025 23:38 | 5,911 | 105,208,017 | 73,854,000 | 2,994,000 | 2,334,720 | ||
| 50 | Dec 27, 2025 15:55 | 5,989 | 104,619,760 | 74,863,000 | 2,994,000 | 2,478,080 | ||
| 51 | Dec 27, 2025 15:29 | 6,107 | 109,029,355 | 75,371,000 | 4,019,000 | 2,416,640 | ||
| 52 | Dec 26, 2025 23:39 | 6,125 | 106,520,281 | 76,606,000 | 3,023,000 | 2,330,624 | ||
| 53 | Dec 26, 2025 23:38 | 6,142 | 112,057,963 | 76,850,000 | 2,994,000 | 2,510,848 | ||
| 54 | Dec 26, 2025 23:38 | 6,329 | 106,287,955 | 77,261,000 | 5,016,000 | 2,514,944 | ||
| 55 | Dec 26, 2025 23:38 | 6,457 | 109,190,939 | 79,943,000 | 3,997,000 | 2,441,216 | ||
| 56 | Dec 26, 2025 23:39 | 6,532 | 106,345,010 | 80,923,000 | 3,996,000 | 2,514,944 | ||
| 57 | Dec 27, 2025 15:29 | 7,020 | 113,867,535 | 84,242,000 | 7,020,000 | 2,510,848 |