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 8, 2026 08:07 | CPPclang++18.1.3 | Success | 1,904 | ||
| Jun 7, 2026 09:15 | CPPclang++18.1.3 | Success | 1,591 | ||
| Jun 7, 2026 09:05 | CPPclang++18.1.3 | Success | 1,552 | ||
| Jun 7, 2026 08:58 | CPPclang++18.1.3 | Success | 1,542 | ||
| Jun 7, 2026 08:50 | CPPclang++18.1.3 | Success | 1,507 | ||
| Jun 7, 2026 08:42 | CPPclang++18.1.3 | Success | 1,788 | ||
| Jun 7, 2026 04:06 | CPPclang++20.1.2 | Success | 3,530 | ||
| Jun 7, 2026 04:00 | CPPclang++20.1.2 | Success | 3,511 | ||
| Jun 7, 2026 03:49 | CPPclang++20.1.2 | Success | 3,448 | ||
| Jun 7, 2026 03:42 | CPPclang++20.1.2 | Success | 7,477 | ||
| Jun 7, 2026 03:32 | CPPclang++20.1.2 | Success | 3,856 | ||
| Jun 7, 2026 03:30 | CPPg++14.2.0 | Success | 20,539 | ||
| Jun 7, 2026 03:26 | CPPclang++20.1.2 | Success | 3,505 | ||
| Jun 7, 2026 03:23 | CPPg++14.2.0 | Success | 20,626 | ||
| Jun 7, 2026 03:19 | CPPclang++20.1.2 | Success | 20,240 | ||
| Jun 7, 2026 03:18 | CPPg++14.2.0 | Success | 43,534 | ||
| Jun 7, 2026 03:12 | CPPg++14.2.0 | Success | 3,912 | ||
| Jun 7, 2026 03:09 | CPPclang++20.1.2 | Success | 3,674 | ||
| Jun 7, 2026 03:07 | CPPg++14.2.0 | Success | 21,058 | ||
| Jun 7, 2026 03:05 | CPPg++14.2.0 | Success | 20,204 | ||
| Jun 7, 2026 03:03 | CPPclang++20.1.2 | Success | 3,517 | ||
| Jun 7, 2026 03:00 | CPPg++14.2.0 | Success | 20,153 | ||
| Jun 7, 2026 02:57 | CPPclang++20.1.2 | Success | 3,434 | ||
| Jun 7, 2026 02:55 | CPPg++14.2.0 | Success | 21,021 | ||
| Jun 7, 2026 02:52 | CPPclang++20.1.2 | Success | 3,386 | ||
| Jun 7, 2026 02:52 | CPPg++10.5.0 | Success | 20,200 | ||
| Jun 7, 2026 02:49 | CPPg++11.5.0 | Success | 20,953 | ||
| Jun 7, 2026 02:47 | CPPclang++20.1.2 | Success | 4,013 | ||
| Jun 7, 2026 02:46 | CPPg++14.2.0 | Success | 21,244 | ||
| Jun 7, 2026 02:41 | CPPg++14.2.0 | Success | 54,083 | ||
| Jun 7, 2026 02:37 | CPPclang++18.1.3 | Success | 3,461 | ||
| Jun 7, 2026 02:36 | CPPg++14.2.0 | Success | 21,298 | ||
| Jun 7, 2026 02:32 | CPPclang++20.1.2 | Success | 3,436 | ||
| Jun 7, 2026 02:26 | CPPg++14.2.0 | Success | 22,369 | ||
| Jun 7, 2026 02:26 | CPPclang++20.1.2 | Success | 3,424 | ||
| Jun 7, 2026 02:20 | CPPg++14.2.0 | Success | 28,011 | ||
| Jun 7, 2026 02:19 | CPPclang++20.1.2 | Success | 3,384 | ||
| Jun 7, 2026 02:15 | CPPg++14.2.0 | Success | 23,776 | ||
| Jun 7, 2026 02:13 | CPPclang++18.1.3 | Success | 27,692 | ||
| Jun 7, 2026 02:12 | CPPclang++20.1.2 | Success | 3,504 | ||
| Jun 7, 2026 02:10 | CPPg++14.2.0 | Success | 21,383 | ||
| Jun 7, 2026 02:07 | CPPclang++20.1.2 | Success | 3,383 | ||
| Jun 7, 2026 02:06 | CPPg++14.2.0 | Success | 22,968 | ||
| Jun 7, 2026 02:03 | CPPg++14.2.0 | Success | 41,258 | ||
| Jun 7, 2026 02:02 | CPPclang++20.1.2 | Success | 3,523 | ||
| Jun 7, 2026 01:55 | CPPg++14.2.0 | Success | 29,152 | ||
| Jun 7, 2026 01:55 | CPPclang++20.1.2 | Success | 3,472 | ||
| Jun 7, 2026 01:52 | CPPg++14.2.0 | Success | 20,909 | ||
| Jun 7, 2026 01:49 | CPPclang++20.1.2 | Success | 3,360+139.31 RP | ||
| Jun 7, 2026 01:49 | CPPg++14.2.0 | Success | 19,641+38.15 RP | ||
| Jun 7, 2026 01:46 | CPPg++12.4.0 | Success | 21,844 | ||
| Jun 7, 2026 01:43 | CPPclang++20.1.2 | Success | 3,583 | ||
| Jun 7, 2026 01:42 | CPPg++13.3.0 | Success | 22,035 | ||
| Jun 7, 2026 01:39 | CPPclang++20.1.2 | Success | 3,555 | ||
| Jun 7, 2026 01:37 | CPPg++14.2.0 | Success | 21,232+75.17 RP | ||
| Jun 7, 2026 01:32 | CPPclang++20.1.2 | Success | 3,525+116.53 RP | ||
| Jun 7, 2026 01:32 | CPPclang++20.1.2 | Success | 50,699 | ||
| Jun 7, 2026 01:26 | CPPclang++20.1.2 | Success | 3,676+1'057.84 RP | ||
| Jun 7, 2026 01:23 | CPPclang++20.1.2 | Success | 26,899 | ||
| Jun 7, 2026 01:21 | CPPclang++20.1.2 | Success | 6,077 | ||
| Jun 7, 2026 01:14 | CPPclang++20.1.2 | Success | 42,628 | ||
| Jun 7, 2026 01:12 | CPPclang++20.1.2 | Success | 6,015+1'306.87 RP | ||
| Jun 7, 2026 01:12 | CPPclang++20.1.2 | Success | 27,244 | ||
| Jun 7, 2026 01:05 | CPPclang++20.1.2 | Success | 28,560 | ||
| Jun 7, 2026 01:00 | CPPclang++20.1.2 | Success | 29,787 | ||
| Jun 7, 2026 00:58 | CPPclang++20.1.2 | Success | 25,264+39.39 RP | ||
| Jun 7, 2026 00:52 | CPPclang++18.1.3 | Success | 29,918 | ||
| Jun 7, 2026 00:51 | CPPclang++20.1.2 | Success | 29,329 | ||
| 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 |