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 29, 2025 06:40 | 3,108 | 68,248,691 | 35,352,000 | 5,050,000 | 2,363,392 | ||
| 2 | Dec 29, 2025 06:38 | 3,161 | 65,708,736 | 37,080,000 | 4,008,000 | 2,433,024 | ||
| 3 | Dec 29, 2025 06:40 | 3,259 | 63,812,147 | 38,335,000 | 4,035,000 | 2,342,912 | ||
| 4 | Dec 29, 2025 06:43 | 3,301 | 68,195,872 | 39,914,000 | 2,993,000 | 2,314,240 | ||
| 5 | Dec 29, 2025 06:44 | 3,314 | 74,043,415 | 39,073,000 | 4,007,000 | 2,318,336 | ||
| 6 | Dec 29, 2025 06:44 | 3,334 | 64,329,496 | 38,302,000 | 5,039,000 | 2,473,984 | ||
| 7 | Dec 29, 2025 06:38 | 3,340 | 67,361,148 | 38,375,000 | 5,049,000 | 2,404,352 | ||
| 8 | Dec 29, 2025 06:44 | 3,407 | 68,637,928 | 40,261,000 | 4,026,000 | 2,375,680 | ||
| 9 | Dec 29, 2025 06:40 | 3,411 | 65,591,770 | 41,316,000 | 3,023,000 | 2,396,160 | ||
| 10 | Dec 29, 2025 06:44 | 3,451 | 70,907,692 | 42,875,000 | 1,994,000 | 2,396,160 | ||
| 11 | Dec 29, 2025 06:46 | 3,464 | 69,456,837 | 41,033,000 | 4,003,000 | 2,367,488 | ||
| 12 | Dec 29, 2025 06:39 | 3,482 | 75,963,787 | 43,251,000 | 2,011,000 | 2,289,664 | ||
| 13 | Dec 29, 2025 06:41 | 3,491 | 75,227,943 | 42,361,000 | 3,025,000 | 2,412,544 | ||
| 14 | Dec 29, 2025 06:41 | 3,494 | 69,134,907 | 40,375,000 | 5,046,000 | 2,355,200 | ||
| 15 | Dec 29, 2025 06:42 | 3,497 | 74,871,853 | 43,440,000 | 2,020,000 | 2,281,472 | ||
| 16 | Dec 29, 2025 06:40 | 3,498 | 70,576,202 | 40,417,000 | 5,052,000 | 2,396,160 | ||
| 17 | Dec 29, 2025 06:43 | 3,515 | 76,357,895 | 45,693,000 | 0 | 2,473,984 | ||
| 18 | Dec 29, 2025 06:44 | 3,533 | 74,762,833 | 43,891,000 | 2,041,000 | 2,396,160 | ||
| 19 | Dec 29, 2025 06:42 | 3,535 | 72,234,803 | 43,963,000 | 1,998,000 | 2,322,432 | ||
| 20 | Dec 29, 2025 06:42 | 3,556 | 72,915,537 | 42,208,000 | 4,019,000 | 2,342,912 | ||
| 21 | Dec 29, 2025 06:44 | 3,556 | 73,578,312 | 43,219,000 | 3,015,000 | 2,465,792 | ||
| 22 | Dec 29, 2025 06:38 | 3,563 | 70,699,976 | 44,308,000 | 2,014,000 | 2,293,760 | ||
| 23 | Dec 29, 2025 06:40 | 3,565 | 74,584,360 | 42,313,000 | 4,029,000 | 2,453,504 | ||
| 24 | Dec 29, 2025 06:45 | 3,578 | 70,450,224 | 44,488,000 | 2,022,000 | 2,367,488 | ||
| 25 | Dec 29, 2025 06:45 | 3,596 | 71,806,322 | 44,712,000 | 2,032,000 | 2,469,888 | ||
| 26 | Dec 29, 2025 06:40 | 3,608 | 76,996,447 | 43,841,000 | 3,058,000 | 2,293,760 | ||
| 27 | Dec 29, 2025 06:38 | 3,616 | 79,094,881 | 43,011,000 | 4,001,000 | 2,355,200 | ||
| 28 | Dec 29, 2025 06:44 | 3,629 | 71,429,903 | 45,176,000 | 2,007,000 | 2,314,240 | ||
| 29 | Dec 29, 2025 06:40 | 3,631 | 72,622,131 | 43,191,000 | 4,017,000 | 2,310,144 | ||
| 30 | Dec 29, 2025 06:40 | 3,651 | 70,473,744 | 44,433,000 | 3,029,000 | 2,383,872 | ||
| 31 | Dec 29, 2025 06:39 | 3,656 | 71,144,709 | 42,473,000 | 5,056,000 | 2,506,752 | ||
| 32 | Dec 29, 2025 06:39 | 3,671 | 76,547,073 | 46,706,000 | 1,015,000 | 2,383,872 | ||
| 33 | Dec 29, 2025 06:38 | 3,682 | 77,988,360 | 43,873,000 | 3,988,000 | 2,371,584 | ||
| 34 | Dec 29, 2025 06:39 | 3,712 | 74,619,942 | 45,238,000 | 3,015,000 | 2,510,848 | ||
| 35 | Dec 29, 2025 06:46 | 3,714 | 80,381,838 | 45,263,000 | 3,017,000 | 2,326,528 | ||
| 36 | Dec 29, 2025 06:42 | 3,728 | 73,102,262 | 46,443,000 | 2,019,000 | 2,375,680 | ||
| 37 | Dec 29, 2025 06:44 | 3,733 | 70,510,461 | 47,520,000 | 1,011,000 | 2,322,432 | ||
| 38 | Dec 29, 2025 06:41 | 3,740 | 72,239,804 | 45,576,000 | 3,038,000 | 2,482,176 | ||
| 39 | Dec 29, 2025 06:45 | 3,758 | 75,393,869 | 44,871,000 | 3,988,000 | 2,293,760 | ||
| 40 | Dec 29, 2025 06:46 | 3,759 | 74,201,884 | 47,866,000 | 997,000 | 2,310,144 | ||
| 41 | Dec 29, 2025 06:44 | 3,768 | 82,697,259 | 44,987,000 | 3,998,000 | 2,375,680 | ||
| 42 | Dec 29, 2025 06:41 | 3,776 | 82,470,957 | 46,077,000 | 3,005,000 | 2,420,736 | ||
| 43 | Dec 29, 2025 06:46 | 3,784 | 74,837,222 | 46,181,000 | 3,011,000 | 2,453,504 | ||
| 44 | Dec 29, 2025 06:42 | 3,799 | 77,119,125 | 46,367,000 | 3,023,000 | 2,457,600 | ||
| 45 | Dec 29, 2025 06:44 | 3,804 | 82,128,671 | 42,388,000 | 7,064,000 | 2,359,296 | ||
| 46 | Dec 29, 2025 06:44 | 3,809 | 72,178,573 | 46,487,000 | 3,031,000 | 2,371,584 | ||
| 47 | Dec 29, 2025 06:46 | 3,835 | 75,392,303 | 46,866,000 | 2,991,000 | 2,510,848 | ||
| 48 | Dec 29, 2025 06:43 | 3,849 | 82,064,285 | 46,040,000 | 4,003,000 | 2,400,256 | ||
| 49 | Dec 29, 2025 06:46 | 3,858 | 78,465,693 | 47,144,000 | 3,009,000 | 2,355,200 | ||
| 50 | Dec 29, 2025 06:45 | 3,866 | 76,364,076 | 45,231,000 | 5,025,000 | 2,273,280 | ||
| 51 | Dec 29, 2025 06:40 | 3,901 | 75,689,389 | 44,630,000 | 6,085,000 | 2,330,624 | ||
| 52 | Dec 29, 2025 06:40 | 3,913 | 75,493,557 | 45,879,000 | 4,986,000 | 2,453,504 | ||
| 53 | Dec 29, 2025 06:42 | 3,934 | 81,430,873 | 46,126,000 | 5,013,000 | 2,363,392 | ||
| 54 | Dec 29, 2025 06:45 | 3,940 | 84,787,666 | 49,212,000 | 2,008,000 | 2,482,176 | ||
| 55 | Dec 29, 2025 06:45 | 3,969 | 88,814,228 | 50,582,000 | 1,011,000 | 2,473,984 | ||
| 56 | Dec 29, 2025 06:41 | 3,991 | 77,067,955 | 47,897,000 | 3,991,000 | 2,306,048 | ||
| 57 | Dec 29, 2025 06:40 | 4,000 | 82,111,628 | 48,995,000 | 2,999,000 | 2,445,312 | ||
| 58 | Dec 29, 2025 06:41 | 4,073 | 80,759,234 | 46,954,000 | 5,994,000 | 2,510,848 | ||
| 59 | Dec 29, 2025 06:40 | 4,098 | 80,759,261 | 49,259,000 | 4,021,000 | 2,334,720 | ||
| 60 | Dec 29, 2025 06:39 | 4,147 | 81,737,576 | 49,914,000 | 3,993,000 | 2,383,872 | ||
| 61 | Dec 29, 2025 06:44 | 4,156 | 85,357,323 | 52,030,000 | 2,001,000 | 2,502,656 | ||
| 62 | Dec 29, 2025 06:39 | 4,220 | 80,399,229 | 53,863,000 | 997,000 | 2,461,696 | ||
| 63 | Dec 29, 2025 06:38 | 4,264 | 84,913,912 | 50,390,000 | 5,039,000 | 2,371,584 |