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 24, 2025 22:11 | 13,331 | 201,257,759 | 163,281,000 | 10,017,000 | 2,277,376 | ||
| 2 | Dec 24, 2025 22:08 | 13,788 | 208,226,863 | 171,238,000 | 8,011,000 | 2,469,888 | ||
| 3 | Dec 24, 2025 22:08 | 13,966 | 208,968,867 | 173,537,000 | 8,024,000 | 2,400,256 | ||
| 4 | Dec 24, 2025 22:08 | 14,437 | 219,760,661 | 174,708,000 | 12,978,000 | 2,449,408 | ||
| 5 | Dec 24, 2025 22:08 | 14,842 | 226,041,743 | 182,952,000 | 9,997,000 | 2,408,448 | ||
| 6 | Dec 24, 2025 04:34 | 15,138 | 222,269,600 | 189,798,000 | 6,992,000 | 2,383,872 | ||
| 7 | Dec 24, 2025 22:08 | 15,325 | 225,049,497 | 191,212,000 | 8,008,000 | 2,523,136 | ||
| 8 | Dec 24, 2025 04:34 | 15,383 | 223,416,585 | 190,978,000 | 8,998,000 | 2,355,200 | ||
| 9 | Dec 24, 2025 21:54 | 15,465 | 228,598,638 | 193,045,000 | 8,001,000 | 2,519,040 | ||
| 10 | Dec 24, 2025 21:54 | 15,612 | 230,372,062 | 194,959,000 | 7,998,000 | 2,318,336 | ||
| 11 | Dec 24, 2025 22:11 | 15,654 | 233,640,143 | 198,489,000 | 5,012,000 | 2,494,464 | ||
| 12 | Dec 24, 2025 22:10 | 15,844 | 236,824,390 | 197,973,000 | 7,998,000 | 2,465,792 | ||
| 13 | Dec 24, 2025 22:08 | 16,058 | 236,403,324 | 202,732,000 | 6,021,000 | 2,494,464 | ||
| 14 | Dec 24, 2025 04:34 | 16,139 | 247,154,170 | 197,817,000 | 11,988,000 | 2,330,624 | ||
| 15 | Dec 24, 2025 22:08 | 16,337 | 237,670,927 | 201,357,000 | 11,019,000 | 2,523,136 | ||
| 16 | Dec 24, 2025 22:10 | 16,428 | 240,637,542 | 206,547,000 | 7,018,000 | 2,498,560 | ||
| 17 | Dec 24, 2025 04:34 | 16,448 | 244,610,582 | 204,832,000 | 8,992,000 | 2,318,336 | ||
| 18 | Dec 24, 2025 22:10 | 16,471 | 243,692,366 | 203,117,000 | 11,006,000 | 2,400,256 | ||
| 19 | Dec 24, 2025 21:54 | 16,796 | 244,843,402 | 209,338,000 | 9,014,000 | 2,482,176 | ||
| 20 | Dec 24, 2025 21:54 | 16,814 | 249,109,051 | 214,577,000 | 4,010,000 | 2,281,472 | ||
| 21 | Dec 24, 2025 21:54 | 16,913 | 247,471,931 | 216,873,000 | 2,998,000 | 2,347,008 | ||
| 22 | Dec 24, 2025 22:11 | 17,112 | 249,612,827 | 220,451,000 | 2,004,000 | 2,347,008 | ||
| 23 | Dec 24, 2025 04:34 | 17,133 | 249,652,670 | 216,737,000 | 5,992,000 | 2,383,872 | ||
| 24 | Dec 24, 2025 04:34 | 17,187 | 249,648,939 | 216,417,000 | 7,013,000 | 2,412,544 | ||
| 25 | Dec 24, 2025 04:34 | 17,236 | 249,357,140 | 217,061,000 | 7,001,000 | 2,523,136 | ||
| 26 | Dec 24, 2025 22:10 | 17,330 | 247,474,419 | 220,280,000 | 5,006,000 | 2,359,296 | ||
| 27 | Dec 24, 2025 22:11 | 17,370 | 253,669,970 | 219,813,000 | 5,994,000 | 2,342,912 | ||
| 28 | Dec 24, 2025 21:54 | 17,401 | 252,894,454 | 218,208,000 | 8,007,000 | 2,383,872 | ||
| 29 | Dec 24, 2025 04:34 | 17,450 | 253,561,154 | 220,854,000 | 5,996,000 | 2,400,256 | ||
| 30 | Dec 24, 2025 22:08 | 17,595 | 259,141,432 | 224,736,000 | 3,995,000 | 2,310,144 | ||
| 31 | Dec 24, 2025 21:54 | 17,747 | 253,565,339 | 227,721,000 | 2,996,000 | 2,473,984 | ||
| 32 | Dec 24, 2025 22:11 | 17,749 | 259,018,865 | 223,719,000 | 7,022,000 | 2,310,144 | ||
| 33 | Dec 24, 2025 22:10 | 17,799 | 259,259,273 | 225,380,000 | 6,010,000 | 2,445,312 | ||
| 34 | Dec 24, 2025 22:10 | 17,910 | 267,955,548 | 222,843,000 | 9,993,000 | 2,514,944 | ||
| 35 | Dec 24, 2025 22:11 | 18,286 | 269,776,937 | 231,726,000 | 5,992,000 | 2,392,064 | ||
| 36 | Dec 24, 2025 21:54 | 18,670 | 274,202,398 | 232,726,000 | 9,988,000 | 2,297,856 | ||
| 37 | Dec 24, 2025 22:10 | 18,870 | 281,789,209 | 237,295,000 | 8,009,000 | 2,523,136 | ||
| 38 | Dec 24, 2025 22:08 | 19,320 | 278,656,368 | 242,154,000 | 9,005,000 | 2,281,472 | ||
| 39 | Dec 24, 2025 22:10 | 19,373 | 279,899,870 | 242,858,000 | 8,994,000 | 2,351,104 | ||
| 40 | Dec 24, 2025 04:34 | 19,515 | 285,089,130 | 245,705,000 | 7,990,000 | 2,400,256 | ||
| 41 | Dec 24, 2025 22:10 | 20,090 | 293,202,186 | 255,168,000 | 6,003,000 | 2,461,696 | ||
| 42 | Dec 24, 2025 21:54 | 20,521 | 296,270,908 | 258,779,000 | 7,993,000 | 2,310,144 |