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 14:31 | 3,189 | 63,389,381 | 35,390,000 | 6,066,000 | 2,478,080 | ||
| 2 | Dec 29, 2025 14:31 | 3,192 | 65,268,999 | 39,471,000 | 2,024,000 | 2,306,048 | ||
| 3 | Dec 29, 2025 06:45 | 3,299 | 69,469,607 | 41,884,000 | 997,000 | 2,355,200 | ||
| 4 | Dec 29, 2025 06:43 | 3,332 | 73,242,163 | 40,294,000 | 3,022,000 | 2,306,048 | ||
| 5 | Dec 29, 2025 14:30 | 3,439 | 73,072,355 | 41,664,000 | 3,048,000 | 2,408,448 | ||
| 6 | Dec 29, 2025 06:38 | 3,532 | 73,649,391 | 43,914,000 | 1,996,000 | 2,383,872 | ||
| 7 | Dec 29, 2025 14:31 | 3,540 | 72,854,241 | 41,017,000 | 5,002,000 | 2,351,104 | ||
| 8 | Dec 29, 2025 06:46 | 3,548 | 75,827,381 | 40,111,000 | 6,016,000 | 2,420,736 | ||
| 9 | Dec 29, 2025 14:26 | 3,555 | 75,719,207 | 43,198,000 | 3,013,000 | 2,465,792 | ||
| 10 | Dec 29, 2025 06:45 | 3,562 | 68,414,495 | 42,280,000 | 4,026,000 | 2,502,656 | ||
| 11 | Dec 29, 2025 06:41 | 3,565 | 75,893,185 | 43,323,000 | 3,022,000 | 2,498,560 | ||
| 12 | Dec 29, 2025 14:26 | 3,569 | 72,644,437 | 42,359,000 | 4,034,000 | 2,379,776 | ||
| 13 | Dec 29, 2025 14:29 | 3,580 | 71,696,873 | 42,498,000 | 4,047,000 | 2,478,080 | ||
| 14 | Dec 29, 2025 14:31 | 3,584 | 71,136,161 | 42,546,000 | 4,052,000 | 2,355,200 | ||
| 15 | Dec 29, 2025 06:41 | 3,594 | 74,569,159 | 44,693,000 | 2,031,000 | 2,408,448 | ||
| 16 | Dec 29, 2025 06:38 | 3,606 | 72,745,189 | 44,881,000 | 1,994,000 | 2,318,336 | ||
| 17 | Dec 29, 2025 14:31 | 3,612 | 76,203,025 | 43,961,000 | 2,997,000 | 2,506,752 | ||
| 18 | Dec 29, 2025 06:39 | 3,635 | 75,039,503 | 44,244,000 | 3,016,000 | 2,342,912 | ||
| 19 | Dec 29, 2025 14:28 | 3,643 | 70,705,955 | 41,309,000 | 6,045,000 | 2,494,464 | ||
| 20 | Dec 29, 2025 14:25 | 3,647 | 72,780,228 | 42,371,000 | 5,044,000 | 2,465,792 | ||
| 21 | Dec 29, 2025 14:30 | 3,654 | 71,047,159 | 43,455,000 | 4,042,000 | 2,441,216 | ||
| 22 | Dec 29, 2025 14:28 | 3,672 | 75,205,102 | 46,727,000 | 1,015,000 | 2,478,080 | ||
| 23 | Dec 29, 2025 06:42 | 3,684 | 73,933,547 | 45,903,000 | 1,995,000 | 2,482,176 | ||
| 24 | Dec 29, 2025 06:40 | 3,701 | 75,665,171 | 43,106,000 | 5,012,000 | 2,297,856 | ||
| 25 | Dec 29, 2025 14:29 | 3,710 | 80,752,640 | 45,217,000 | 3,014,000 | 2,387,968 | ||
| 26 | Dec 29, 2025 14:27 | 3,727 | 75,238,659 | 44,415,000 | 4,037,000 | 2,383,872 | ||
| 27 | Dec 29, 2025 06:46 | 3,764 | 76,164,883 | 43,935,000 | 4,992,000 | 2,506,752 | ||
| 28 | Dec 29, 2025 06:39 | 3,779 | 74,801,754 | 47,122,000 | 2,005,000 | 2,416,640 | ||
| 29 | Dec 29, 2025 06:40 | 3,783 | 76,514,756 | 46,170,000 | 3,011,000 | 2,363,392 | ||
| 30 | Dec 29, 2025 14:28 | 3,794 | 76,158,252 | 47,312,000 | 2,013,000 | 2,420,736 | ||
| 31 | Dec 29, 2025 06:44 | 3,811 | 73,933,770 | 44,493,000 | 5,056,000 | 2,482,176 | ||
| 32 | Dec 29, 2025 06:39 | 3,819 | 75,600,319 | 47,616,000 | 2,026,000 | 2,453,504 | ||
| 33 | Dec 29, 2025 06:38 | 3,837 | 75,241,090 | 46,894,000 | 2,993,000 | 2,351,104 | ||
| 34 | Dec 29, 2025 14:30 | 3,844 | 77,623,597 | 45,971,000 | 3,997,000 | 2,326,528 | ||
| 35 | Dec 29, 2025 14:25 | 3,854 | 80,335,165 | 49,104,000 | 1,002,000 | 2,396,160 | ||
| 36 | Dec 29, 2025 14:31 | 3,903 | 82,671,073 | 48,710,000 | 2,029,000 | 2,379,776 | ||
| 37 | Dec 29, 2025 14:27 | 3,923 | 77,279,355 | 48,999,000 | 1,999,000 | 2,506,752 | ||
| 38 | Dec 29, 2025 06:45 | 3,929 | 77,591,492 | 47,070,000 | 4,005,000 | 2,400,256 | ||
| 39 | Dec 29, 2025 06:43 | 3,957 | 74,377,681 | 47,411,000 | 4,034,000 | 2,342,912 | ||
| 40 | Dec 29, 2025 14:29 | 3,958 | 75,393,720 | 48,424,000 | 3,026,000 | 2,433,024 | ||
| 41 | Dec 29, 2025 14:27 | 3,961 | 73,321,384 | 49,478,000 | 2,019,000 | 2,338,816 | ||
| 42 | Dec 29, 2025 06:41 | 4,021 | 80,935,997 | 49,259,000 | 3,015,000 | 2,510,848 | ||
| 43 | Dec 29, 2025 06:42 | 4,044 | 73,923,554 | 50,551,000 | 2,022,000 | 2,494,464 | ||
| 44 | Dec 29, 2025 14:25 | 4,070 | 80,982,074 | 46,915,000 | 5,989,000 | 2,371,584 | ||
| 45 | Dec 29, 2025 14:31 | 4,076 | 84,190,719 | 47,991,000 | 4,999,000 | 2,519,040 | ||
| 46 | Dec 29, 2025 06:44 | 4,095 | 81,224,465 | 46,203,000 | 7,030,000 | 2,363,392 | ||
| 47 | Dec 29, 2025 06:40 | 4,144 | 80,761,568 | 50,875,000 | 2,992,000 | 2,510,848 | ||
| 48 | Dec 29, 2025 06:44 | 4,144 | 79,853,756 | 50,885,000 | 2,993,000 | 2,473,984 | ||
| 49 | Dec 29, 2025 06:42 | 4,200 | 80,059,067 | 51,570,000 | 3,033,000 | 2,457,600 | ||
| 50 | Dec 29, 2025 14:31 | 4,226 | 87,119,813 | 51,939,000 | 2,996,000 | 2,314,240 | ||
| 51 | Dec 29, 2025 14:31 | 4,236 | 81,401,782 | 49,056,000 | 6,006,000 | 2,408,448 | ||
| 52 | Dec 29, 2025 06:46 | 4,300 | 81,674,126 | 53,900,000 | 1,996,000 | 2,355,200 | ||
| 53 | Dec 29, 2025 06:43 | 4,389 | 83,028,054 | 51,049,000 | 6,005,000 | 2,314,240 | ||
| 54 | Dec 29, 2025 14:26 | 4,654 | 84,036,429 | 57,483,000 | 3,025,000 | 2,445,312 |