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 00:06 | 4,081 | 78,916,320 | 50,056,000 | 3,003,000 | 2,334,720 | ||
| 2 | Dec 29, 2025 00:08 | 4,117 | 79,716,791 | 51,507,000 | 2,019,000 | 2,281,472 | ||
| 3 | Dec 29, 2025 00:08 | 4,247 | 82,707,438 | 49,184,000 | 6,022,000 | 2,420,736 | ||
| 4 | Dec 29, 2025 00:06 | 4,378 | 82,674,431 | 51,922,000 | 4,992,000 | 2,289,664 | ||
| 5 | Dec 29, 2025 00:05 | 4,427 | 86,355,729 | 54,518,000 | 3,028,000 | 2,277,376 | ||
| 6 | Dec 29, 2025 00:06 | 4,452 | 90,709,871 | 54,885,000 | 2,993,000 | 2,510,848 | ||
| 7 | Dec 29, 2025 00:08 | 4,499 | 85,862,340 | 55,465,000 | 3,025,000 | 2,379,776 | ||
| 8 | Dec 29, 2025 00:08 | 4,572 | 95,755,563 | 56,416,000 | 3,022,000 | 2,473,984 | ||
| 9 | Dec 29, 2025 00:05 | 4,665 | 93,006,795 | 58,618,000 | 2,021,000 | 2,457,600 | ||
| 10 | Dec 29, 2025 00:05 | 4,690 | 92,697,452 | 57,975,000 | 2,998,000 | 2,277,376 | ||
| 11 | Dec 29, 2025 00:05 | 4,759 | 88,388,584 | 57,880,000 | 3,991,000 | 2,355,200 | ||
| 12 | Dec 29, 2025 00:06 | 4,764 | 90,899,610 | 56,935,000 | 4,994,000 | 2,355,200 | ||
| 13 | Dec 29, 2025 00:08 | 4,836 | 89,784,844 | 60,871,000 | 1,995,000 | 2,469,888 | ||
| 14 | Dec 29, 2025 00:06 | 4,852 | 91,211,784 | 59,071,000 | 4,004,000 | 2,301,952 | ||
| 15 | Dec 29, 2025 00:06 | 5,005 | 94,819,336 | 60,066,000 | 5,005,000 | 2,273,280 | ||
| 16 | Dec 29, 2025 00:06 | 5,012 | 89,210,121 | 61,152,000 | 4,009,000 | 2,289,664 | ||
| 17 | Dec 29, 2025 00:09 | 5,022 | 90,844,728 | 62,276,000 | 3,013,000 | 2,486,272 | ||
| 18 | Dec 29, 2025 00:06 | 5,050 | 92,543,737 | 62,621,000 | 3,030,000 | 2,314,240 | ||
| 19 | Dec 29, 2025 00:05 | 5,101 | 93,705,594 | 61,291,000 | 5,023,000 | 2,445,312 | ||
| 20 | Dec 29, 2025 00:06 | 5,219 | 97,730,908 | 63,857,000 | 3,991,000 | 2,416,640 | ||
| 21 | Dec 29, 2025 00:06 | 5,244 | 94,865,884 | 63,157,000 | 5,012,000 | 2,355,200 | ||
| 22 | Dec 29, 2025 00:29 | 5,247 | 93,143,114 | 65,206,000 | 3,009,000 | 2,416,640 | ||
| 23 | Dec 29, 2025 00:06 | 5,276 | 99,631,175 | 68,592,000 | 0 | 2,498,560 | ||
| 24 | Dec 29, 2025 00:06 | 5,283 | 95,745,262 | 64,641,000 | 4,040,000 | 2,293,760 | ||
| 25 | Dec 29, 2025 00:06 | 5,303 | 99,547,923 | 67,935,000 | 999,000 | 2,367,488 | ||
| 26 | Dec 29, 2025 00:06 | 5,336 | 98,148,758 | 65,346,000 | 4,021,000 | 2,342,912 | ||
| 27 | Dec 29, 2025 00:29 | 5,375 | 100,084,676 | 66,878,000 | 2,994,000 | 2,363,392 | ||
| 28 | Dec 29, 2025 00:29 | 5,391 | 95,563,350 | 68,085,000 | 2,002,000 | 2,404,352 | ||
| 29 | Dec 29, 2025 00:06 | 5,449 | 98,524,577 | 67,844,000 | 2,993,000 | 2,269,184 | ||
| 30 | Dec 29, 2025 00:09 | 5,531 | 99,625,616 | 65,915,000 | 5,992,000 | 2,441,216 | ||
| 31 | Dec 29, 2025 00:05 | 5,581 | 103,327,768 | 69,531,000 | 3,023,000 | 2,428,928 | ||
| 32 | Dec 29, 2025 00:09 | 5,623 | 99,258,682 | 70,096,000 | 3,004,000 | 2,510,848 | ||
| 33 | Dec 29, 2025 00:05 | 5,641 | 102,848,170 | 68,315,000 | 5,023,000 | 2,510,848 | ||
| 34 | Dec 29, 2025 00:08 | 5,738 | 103,603,807 | 74,599,000 | 0 | 2,482,176 | ||
| 35 | Dec 29, 2025 00:06 | 5,770 | 98,800,464 | 73,009,000 | 2,000,000 | 2,318,336 | ||
| 36 | Dec 29, 2025 00:08 | 5,845 | 103,933,116 | 72,983,000 | 2,999,000 | 2,482,176 | ||
| 37 | Dec 29, 2025 00:08 | 6,078 | 109,297,582 | 76,018,000 | 3,000,000 | 2,371,584 | ||
| 38 | Dec 29, 2025 00:05 | 6,100 | 106,321,774 | 76,292,000 | 3,011,000 | 2,355,200 | ||
| 39 | Dec 29, 2025 00:05 | 6,142 | 107,355,257 | 76,851,000 | 2,994,000 | 2,424,832 | ||
| 40 | Dec 29, 2025 00:06 | 6,173 | 108,592,913 | 73,231,000 | 7,022,000 | 2,342,912 | ||
| 41 | Dec 29, 2025 00:06 | 6,177 | 106,672,923 | 75,281,000 | 5,018,000 | 2,465,792 | ||
| 42 | Dec 29, 2025 00:08 | 6,397 | 111,559,664 | 79,155,000 | 4,007,000 | 2,506,752 |