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
| Date | Author | Language | Status | Score | |
|---|---|---|---|---|---|
| Jun 7, 2026 00:48 | CPPclang++20.1.2 | Success | 30,972 | ||
| Jun 7, 2026 00:46 | CPPclang++20.1.2 | Success | 28,499 | ||
| Jun 7, 2026 00:42 | CPPclang++20.1.2 | Success | 28,056+5.24 RP | ||
| Jun 7, 2026 00:39 | CPPclang++20.1.2 | Success | 30,653 | ||
| Jun 7, 2026 00:35 | CPPclang++20.1.2 | Success | 28,475+351.19 RP | ||
| Jun 7, 2026 00:33 | CPPclang++20.1.2 | Success | 30,687 | ||
| Jun 7, 2026 00:27 | CPPclang++20.1.2 | Success | 30,277 | ||
| Jun 7, 2026 00:25 | CPPclang++18.1.3 | Success | 30,992 | ||
| Jun 7, 2026 00:21 | CPPclang++20.1.2 | Success | 31,395 | ||
| Jun 7, 2026 00:13 | CPPclang++20.1.2 | Success | 28,118+11.05 RP | ||
| Jun 7, 2026 00:09 | CPPclang++20.1.2 | Success | 29,020+93.59 RP | ||
| Jun 6, 2026 23:58 | CPPclang++20.1.2 | Success | 41,346 | ||
| Jun 6, 2026 23:54 | CPPclang++20.1.2 | Success | 41,752 | ||
| Jun 6, 2026 23:51 | CPPclang++20.1.2 | Success | 44,774 | ||
| Jun 6, 2026 23:46 | CPPclang++19.1.1 | Success | 40,706 | ||
| Jun 6, 2026 23:42 | CPPclang++20.1.2 | Success | 39,840+9.65 RP | ||
| Jun 6, 2026 23:38 | CPPclang++20.1.2 | Success | 47,566 | ||
| Jun 6, 2026 23:31 | CPPclang++20.1.2 | Success | 41,433+1.72 RP | ||
| Jun 6, 2026 23:23 | CPPclang++20.1.2 | Success | 43,996 | ||
| Jun 6, 2026 23:17 | CPPclang++20.1.2 | Success | 86,790 | ||
| Jun 6, 2026 23:12 | CPPclang++20.1.2 | Success | 41,730+36.23 RP | ||
| Jun 6, 2026 23:05 | CPPclang++20.1.2 | Success | 51,686 | ||
| Jun 6, 2026 23:02 | CPPclang++20.1.2 | Success | 49,773 | ||
| Jun 6, 2026 22:59 | CPPclang++20.1.2 | Success | 49,162+7.88 RP | ||
| Jun 6, 2026 22:56 | CPPclang++20.1.2 | Success | 51,144+2.41 RP | ||
| Jun 6, 2026 22:53 | CPPclang++20.1.2 | Success | 55,988 | ||
| Jun 6, 2026 22:50 | CPPg++14.2.0 | Success | 55,544 | ||
| Jun 6, 2026 22:48 | CPPclang++20.1.2 | Success | 51,782+2.91 RP | ||
| Jun 6, 2026 22:45 | CPPclang++18.1.3 | Success | 68,583 | ||
| Jun 6, 2026 22:37 | CPPclang++18.1.3 | Success | 58,479 | ||
| Jun 6, 2026 22:34 | CPPclang++18.1.3 | Success | 58,529 | ||
| Jun 6, 2026 22:31 | CPPclang++18.1.3 | Success | 52,575+23.70 RP | ||
| Jun 6, 2026 22:27 | CPPclang++18.1.3 | Success | 60,060+35.99 RP | ||
| Jun 6, 2026 22:19 | CPPclang++18.1.3 | Success | 108,349 | ||
| Jun 6, 2026 22:14 | CPPclang++18.1.3 | Success | 76,621+86.73 RP | ||
| Jun 6, 2026 22:09 | CPPclang++18.1.3 | Success | 245,962 | ||
| Jun 6, 2026 22:06 | CPPclang++18.1.3 | Success | 240,515 | ||
| Jun 6, 2026 22:01 | CPPclang++18.1.3 | Success | 228,427+0.10 RP | ||
| Jun 6, 2026 21:58 | CPPclang++18.1.3 | Success | 228,933+0.15 RP | ||
| Jun 6, 2026 21:52 | CPPclang++18.1.3 | Success | 229,739+3.89 RP | ||
| Jun 6, 2026 21:45 | CPPclang++18.1.3 | Error | |||
| Jun 6, 2026 21:38 | CPPclang++18.1.3 | Success | 252,266+4.41 RP | ||
| Jun 6, 2026 21:32 | CPPclang++18.1.3 | Success | 283,860+0.80 RP | ||
| Jun 6, 2026 21:27 | CPPclang++18.1.3 | Success | 290,462+3.23 RP | ||
| Jun 6, 2026 21:21 | CPPclang++18.1.3 | Success | 320,536+31.20 RP | ||
| Jun 6, 2026 21:18 | CPPclang++18.1.3 | Error | |||
| Jun 6, 2026 17:57 | CPPclang++18.1.3 | Success | 1,562 | ||
| Jun 6, 2026 17:52 | CPPclang++18.1.3 | Success | 1,518 | ||
| Jun 6, 2026 17:47 | CPPclang++18.1.3 | Success | 1,501+235.44 RP | ||
| Jun 6, 2026 17:42 | CPPclang++18.1.3 | Success | 1,528+152.40 RP | ||
| Jun 6, 2026 17:37 | CPPclang++18.1.3 | Error | |||
| Jun 6, 2026 17:32 | CPPclang++18.1.3 | Success | 1,657 | ||
| Jun 6, 2026 17:27 | CPPclang++18.1.3 | Success | 1,650 | ||
| Jun 6, 2026 17:22 | CPPclang++18.1.3 | Success | 1,556 | ||
| Jun 6, 2026 17:17 | CPPclang++18.1.3 | Success | 1,546+16.72 RP | ||
| Jun 6, 2026 17:12 | CPPclang++18.1.3 | Success | 1,601 | ||
| Jun 6, 2026 17:04 | CPPclang++18.1.3 | Success | 1,800 | ||
| Jun 5, 2026 21:03 | CPPclang++18.1.3 | Success | 1,555 | ||
| Jun 5, 2026 20:58 | CPPclang++18.1.3 | Success | 1,551 | ||
| Jun 5, 2026 20:53 | CPPclang++18.1.3 | Success | 1,553 | ||
| Jun 5, 2026 20:48 | CPPclang++18.1.3 | Success | 1,610 | ||
| Jun 5, 2026 20:43 | CPPclang++18.1.3 | Success | 1,548+213.42 RP | ||
| Jun 5, 2026 20:38 | CPPclang++18.1.3 | Success | 1,574+112.02 RP | ||
| Jun 5, 2026 20:33 | CPPclang++18.1.3 | Success | 1,645 | ||
| Jun 5, 2026 20:28 | CPPclang++18.1.3 | Success | 1,588+39.54 RP | ||
| Jun 5, 2026 20:23 | CPPclang++18.1.3 | Success | 2,982 | ||
| Jun 5, 2026 20:16 | CPPclang++18.1.3 | Success | 1,683 | ||
| Jun 5, 2026 20:11 | CPPclang++18.1.3 | Success | 1,641 | ||
| Jun 5, 2026 20:05 | CPPclang++18.1.3 | Success | 1,702 | ||
| Jun 5, 2026 20:00 | CPPclang++18.1.3 | Success | 1,599 | ||
| Jun 4, 2026 22:41 | CPPclang++18.1.3 | Success | 1,720 | ||
| Jun 4, 2026 22:36 | CPPclang++18.1.3 | Success | 1,750 | ||
| Jun 4, 2026 22:31 | CPPclang++18.1.3 | Success | 1,594 | ||
| Jun 4, 2026 22:26 | CPPclang++18.1.3 | Error | |||
| Jun 4, 2026 22:21 | CPPclang++18.1.3 | Success | 1,678 | ||
| Jun 4, 2026 22:16 | CPPclang++18.1.3 | Success | 1,625 | ||
| Jun 4, 2026 22:11 | CPPclang++18.1.3 | Error | |||
| Jun 4, 2026 22:06 | CPPclang++18.1.3 | Success | 2,897 | ||
| Jun 4, 2026 22:01 | CPPclang++18.1.3 | Success | 1,612 | ||
| Jun 4, 2026 21:56 | CPPclang++18.1.3 | Success | 1,616 | ||
| Jun 4, 2026 21:51 | CPPclang++18.1.3 | Success | 1,663 | ||
| Jun 4, 2026 21:46 | CPPclang++18.1.3 | Success | 1,593+163.36 RP | ||
| Jun 4, 2026 21:40 | CPPclang++18.1.3 | Success | 1,644 | ||
| Jun 4, 2026 21:35 | CPPclang++18.1.3 | Success | 1,614+465.39 RP | ||
| Jun 4, 2026 21:29 | CPPclang++18.1.3 | Success | 1,805 | ||
| Jun 4, 2026 21:24 | CPPclang++18.1.3 | Error | |||
| Jun 4, 2026 21:19 | CPPclang++18.1.3 | Success | 1,812 | ||
| May 22, 2026 22:10 | CPPclang++17.0.6 | Success | 5,316 | ||
| May 22, 2026 22:06 | CPPclang++17.0.6 | Success | 5,221 | ||
| May 22, 2026 22:03 | CPPclang++17.0.6 | Success | 5,265 | ||
| May 22, 2026 22:01 | CPPclang++17.0.6 | Success | 5,402 | ||
| May 22, 2026 21:58 | CPPclang++17.0.6 | Success | 5,213+54.00 RP | ||
| May 22, 2026 21:54 | CPPclang++17.0.6 | Success | 5,364+52.03 RP | ||
| May 22, 2026 21:50 | CPPclang++17.0.6 | Success | 5,518+31.94 RP | ||
| May 22, 2026 16:29 | CPPclang++17.0.6 | Success | 5,617+234.95 RP | ||
| May 22, 2026 16:24 | CPPclang++17.0.6 | Success | 6,618 | ||
| May 22, 2026 16:21 | CPPclang++19.1.1 | Success | 6,638 | ||
| May 22, 2026 16:20 | CPPclang++18.1.3 | Success | 6,824 | ||
| May 22, 2026 16:15 | CPPclang++17.0.6 | Success | 6,594 | ||
| May 22, 2026 16:10 | CPPclang++17.0.6 | Success | 7,230 |