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 15:10 | 3,106 | 66,824,480 | 38,355,000 | 2,018,000 | 2,523,136 | ||
| 2 | Dec 29, 2025 15:18 | 3,284 | 71,579,307 | 38,628,000 | 4,066,000 | 2,441,216 | ||
| 3 | Dec 29, 2025 15:19 | 3,310 | 69,162,119 | 40,026,000 | 3,001,000 | 2,437,120 | ||
| 4 | Dec 29, 2025 15:14 | 3,313 | 67,889,871 | 40,069,000 | 3,005,000 | 2,334,720 | ||
| 5 | Dec 29, 2025 15:28 | 3,320 | 70,489,633 | 40,150,000 | 3,011,000 | 2,498,560 | ||
| 6 | Dec 29, 2025 15:04 | 3,342 | 66,096,513 | 41,429,000 | 2,020,000 | 2,375,680 | ||
| 7 | Dec 29, 2025 15:31 | 3,346 | 66,416,746 | 40,459,000 | 3,034,000 | 2,330,624 | ||
| 8 | Dec 29, 2025 15:22 | 3,376 | 69,417,081 | 42,869,000 | 1,020,000 | 2,379,776 | ||
| 9 | Dec 29, 2025 15:10 | 3,380 | 68,799,766 | 39,940,000 | 3,994,000 | 2,408,448 | ||
| 10 | Dec 29, 2025 15:08 | 3,385 | 71,534,091 | 41,003,000 | 3,000,000 | 2,449,408 | ||
| 11 | Dec 29, 2025 15:05 | 3,396 | 75,088,416 | 41,133,000 | 3,009,000 | 2,416,640 | ||
| 12 | Dec 29, 2025 15:14 | 3,421 | 66,106,643 | 41,439,000 | 3,032,000 | 2,478,080 | ||
| 13 | Dec 29, 2025 15:31 | 3,426 | 66,086,308 | 40,493,000 | 4,049,000 | 2,404,352 | ||
| 14 | Dec 29, 2025 15:24 | 3,434 | 77,341,277 | 42,608,000 | 2,028,000 | 2,449,408 | ||
| 15 | Dec 29, 2025 15:05 | 3,461 | 74,349,449 | 39,996,000 | 4,999,000 | 2,400,256 | ||
| 16 | Dec 29, 2025 15:28 | 3,478 | 76,658,362 | 42,198,000 | 3,014,000 | 2,363,392 | ||
| 17 | Dec 29, 2025 15:19 | 3,493 | 66,203,177 | 43,389,000 | 2,018,000 | 2,445,312 | ||
| 18 | Dec 29, 2025 15:21 | 3,506 | 72,900,471 | 41,528,000 | 4,051,000 | 2,404,352 | ||
| 19 | Dec 29, 2025 15:24 | 3,528 | 77,860,764 | 44,866,000 | 997,000 | 2,506,752 | ||
| 20 | Dec 29, 2025 15:27 | 3,528 | 70,913,990 | 41,878,000 | 3,988,000 | 2,297,856 | ||
| 21 | Dec 29, 2025 15:05 | 3,537 | 77,115,212 | 40,983,000 | 4,997,000 | 2,424,832 | ||
| 22 | Dec 29, 2025 15:13 | 3,538 | 77,289,349 | 43,996,000 | 1,999,000 | 2,510,848 | ||
| 23 | Dec 29, 2025 15:08 | 3,547 | 77,118,144 | 40,093,000 | 6,014,000 | 2,506,752 | ||
| 24 | Dec 29, 2025 15:13 | 3,548 | 70,371,346 | 44,118,000 | 2,005,000 | 2,400,256 | ||
| 25 | Dec 29, 2025 15:13 | 3,551 | 74,774,793 | 44,153,000 | 2,006,000 | 2,424,832 | ||
| 26 | Dec 29, 2025 15:04 | 3,556 | 79,583,390 | 44,215,000 | 2,009,000 | 2,322,432 | ||
| 27 | Dec 29, 2025 15:24 | 3,557 | 78,525,203 | 43,222,000 | 3,015,000 | 2,469,888 | ||
| 28 | Dec 29, 2025 15:19 | 3,576 | 67,713,029 | 43,453,000 | 3,031,000 | 2,310,144 | ||
| 29 | Dec 29, 2025 15:30 | 3,594 | 72,593,637 | 46,723,000 | 0 | 2,465,792 | ||
| 30 | Dec 29, 2025 15:18 | 3,670 | 79,990,072 | 47,716,000 | 0 | 2,281,472 | ||
| 31 | Dec 29, 2025 15:10 | 3,672 | 79,739,936 | 46,718,000 | 1,015,000 | 2,433,024 | ||
| 32 | Dec 29, 2025 15:04 | 3,682 | 71,424,692 | 42,883,000 | 4,986,000 | 2,510,848 | ||
| 33 | Dec 29, 2025 15:16 | 3,683 | 73,292,683 | 43,892,000 | 3,990,000 | 2,396,160 | ||
| 34 | Dec 29, 2025 15:25 | 3,693 | 75,970,317 | 44,011,000 | 4,001,000 | 2,342,912 | ||
| 35 | Dec 29, 2025 15:11 | 3,702 | 73,616,186 | 45,119,000 | 3,007,000 | 2,424,832 | ||
| 36 | Dec 29, 2025 15:22 | 3,720 | 70,765,218 | 42,318,000 | 6,045,000 | 2,469,888 | ||
| 37 | Dec 29, 2025 15:27 | 3,741 | 82,061,633 | 47,614,000 | 1,013,000 | 2,338,816 | ||
| 38 | Dec 29, 2025 15:11 | 3,746 | 77,838,541 | 47,683,000 | 1,014,000 | 2,416,640 | ||
| 39 | Dec 29, 2025 15:07 | 3,751 | 73,223,873 | 46,728,000 | 2,031,000 | 2,523,136 | ||
| 40 | Dec 29, 2025 15:30 | 3,759 | 75,052,847 | 47,875,000 | 997,000 | 2,486,272 | ||
| 41 | Dec 29, 2025 15:31 | 3,770 | 76,379,293 | 45,007,000 | 4,000,000 | 2,449,408 | ||
| 42 | Dec 29, 2025 15:07 | 3,771 | 73,822,097 | 47,022,000 | 2,000,000 | 2,400,256 | ||
| 43 | Dec 29, 2025 15:33 | 3,772 | 74,020,796 | 46,037,000 | 3,002,000 | 2,428,928 | ||
| 44 | Dec 29, 2025 15:16 | 3,793 | 77,566,897 | 42,264,000 | 7,044,000 | 2,297,856 | ||
| 45 | Dec 29, 2025 15:30 | 3,796 | 78,533,789 | 47,329,000 | 2,014,000 | 2,387,968 | ||
| 46 | Dec 29, 2025 15:22 | 3,819 | 81,707,988 | 46,603,000 | 3,039,000 | 2,375,680 | ||
| 47 | Dec 29, 2025 15:33 | 3,825 | 79,462,685 | 46,679,000 | 3,044,000 | 2,502,656 | ||
| 48 | Dec 29, 2025 15:11 | 3,857 | 76,172,255 | 46,134,000 | 4,011,000 | 2,392,064 | ||
| 49 | Dec 29, 2025 15:21 | 3,870 | 73,032,007 | 47,292,000 | 3,018,000 | 2,424,832 | ||
| 50 | Dec 29, 2025 15:35 | 3,894 | 78,450,494 | 46,567,000 | 4,049,000 | 2,420,736 | ||
| 51 | Dec 29, 2025 15:33 | 3,898 | 78,647,144 | 48,651,000 | 2,027,000 | 2,453,504 | ||
| 52 | Dec 29, 2025 15:14 | 3,917 | 79,665,164 | 47,922,000 | 2,995,000 | 2,359,296 | ||
| 53 | Dec 29, 2025 15:27 | 3,935 | 83,271,730 | 49,151,000 | 2,006,000 | 2,314,240 | ||
| 54 | Dec 29, 2025 15:18 | 3,963 | 77,509,170 | 48,489,000 | 3,030,000 | 2,269,184 | ||
| 55 | Dec 29, 2025 15:28 | 3,976 | 77,645,103 | 50,672,000 | 1,013,000 | 2,383,872 | ||
| 56 | Dec 29, 2025 15:07 | 4,018 | 78,916,852 | 49,222,000 | 3,013,000 | 2,371,584 | ||
| 57 | Dec 29, 2025 15:35 | 4,019 | 87,255,085 | 48,231,000 | 4,019,000 | 2,379,776 | ||
| 58 | Dec 29, 2025 15:08 | 4,025 | 83,644,360 | 50,315,000 | 2,012,000 | 2,416,640 | ||
| 59 | Dec 29, 2025 15:16 | 4,066 | 79,063,097 | 47,874,000 | 4,986,000 | 2,269,184 | ||
| 60 | Dec 29, 2025 15:25 | 4,112 | 82,533,184 | 49,423,000 | 4,034,000 | 2,355,200 | ||
| 61 | Dec 29, 2025 15:25 | 4,162 | 82,801,606 | 49,097,000 | 5,009,000 | 2,375,680 | ||
| 62 | Dec 29, 2025 15:21 | 4,179 | 82,849,609 | 49,293,000 | 5,029,000 | 2,437,120 | ||
| 63 | Dec 29, 2025 15:35 | 4,270 | 79,800,126 | 52,480,000 | 3,027,000 | 2,383,872 |