Cross-Margin Liquidation Engine yenw0d

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 of trade_size * price_at_trade_time across all trades
  • Margin rule: liquidate if equity < total_notional / 100 after any price update

Input

One command per line on STDIN:

  • a <balance> – create account with USD balance (IDs start at 0, incrementing)
  • p <instrument_idx> <price> – set/update instrument price (0-indexed)
  • t <account_idx> <instrument_idx> <size> – trade size (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 AuthorLanguageStatus Score
Nov 8, 2026 06:36highload-churnerhighload-churnerCPPg++14.2.0Success1,023
Nov 8, 2026 06:33highload-churnerhighload-churnerCPPg++14.2.0Success1,050
Nov 8, 2026 06:29highload-churnerhighload-churnerCPPg++14.2.0Success1,073
Nov 8, 2026 06:25highload-churnerhighload-churnerCPPg++14.2.0Success1,005+501.86 RP
Nov 8, 2026 06:23highload-churnerhighload-churnerCPPg++14.2.0Success1,075
Nov 8, 2026 06:17highload-churnerhighload-churnerCPPg++14.2.0Success1,031
Nov 8, 2026 06:12highload-churnerhighload-churnerCPPg++14.2.0Success1,061
Nov 8, 2026 06:00highload-churnerhighload-churnerCPPg++14.2.0Success1,031+259.88 RP
Nov 8, 2026 05:41highload-churnerhighload-churnerCPPg++14.2.0Success1,045+1'988.23 RP
Nov 6, 2026 17:07Andrew EpsteinAndrew EpsteinCPPg++14.2.0Success1,073+683.56 RP
Nov 6, 2026 17:06Andrew EpsteinAndrew EpsteinGOgo1.26.2Success1,101+272.08 RP
Nov 6, 2026 16:58Andrew EpsteinAndrew EpsteinCPPg++14.2.0Success13,880
Nov 6, 2026 16:45Andrew EpsteinAndrew EpsteinCPPg++14.2.0Success9,537
Nov 6, 2026 16:37Andrew EpsteinAndrew EpsteinCPPg++14.2.0Success17,571
Nov 6, 2026 16:22Andrew EpsteinAndrew EpsteinGOgo1.26.2Success1,141
Nov 6, 2026 16:21Andrew EpsteinAndrew EpsteinRUSTrust-1.95.0Success1,101+305.76 RP
Nov 6, 2026 16:21Andrew EpsteinAndrew EpsteinCPPg++14.2.0Success1,127+62.54 RP
Nov 6, 2026 16:21Andrew EpsteinAndrew EpsteinZIG0.15.1Success1,122
Nov 6, 2026 16:12Andrew EpsteinAndrew EpsteinCPPg++14.2.0Success22,165
Nov 6, 2026 16:04Andrew EpsteinAndrew EpsteinCPPg++14.2.0Success1,147
Nov 6, 2026 15:59Andrew EpsteinAndrew EpsteinCPPg++14.2.0Success23,329
Nov 6, 2026 15:49Andrew EpsteinAndrew EpsteinCPPg++14.2.0Success18,800
Nov 6, 2026 15:43Andrew EpsteinAndrew EpsteinRUSTrust-1.95.0Success1,133+315.49 RP
Nov 6, 2026 15:43Andrew EpsteinAndrew EpsteinCPPg++14.2.0Success1,135+114.92 RP
Nov 6, 2026 15:18Andrew EpsteinAndrew EpsteinZIG0.15.1Success1,107+936.81 RP
Nov 6, 2026 15:18Andrew EpsteinAndrew EpsteinRUSTrust-1.95.0Success1,175+300.46 RP
Nov 6, 2026 15:18Andrew EpsteinAndrew EpsteinGOgo1.26.2Success1,135+557.29 RP
Nov 6, 2026 15:04Andrew EpsteinAndrew EpsteinCPPg++14.2.0Success1,150+542.10 RP
Nov 6, 2026 14:58Andrew EpsteinAndrew EpsteinCPPg++14.2.0Success19,198
Nov 2, 2026 17:12Andrew EpsteinAndrew EpsteinCPPg++14.2.0Success19,123
Nov 2, 2026 17:07Andrew EpsteinAndrew EpsteinCSHARP9.0.18Error
Nov 2, 2026 17:04Andrew EpsteinAndrew EpsteinCSHARP9.0.18Success1,270
Nov 2, 2026 17:03Andrew EpsteinAndrew EpsteinCSHARP9.0.18Error
Nov 2, 2026 16:52Andrew EpsteinAndrew EpsteinCSHARP9.0.18Success1,268+18.61 RP
Nov 2, 2026 16:51Andrew EpsteinAndrew EpsteinCSHARP9.0.18Success1,271+257.47 RP
Nov 2, 2026 16:50Andrew EpsteinAndrew EpsteinCSHARP9.0.18Success1,314+578.00 RP
Nov 2, 2026 16:47Andrew EpsteinAndrew EpsteinZIG0.15.1Success1,202+306.65 RP
Nov 2, 2026 16:47Andrew EpsteinAndrew EpsteinRUSTrust-1.95.0Success1,253
Nov 2, 2026 16:46Andrew EpsteinAndrew EpsteinGOgo1.26.2Success1,195+475.54 RP
Nov 2, 2026 16:46Andrew EpsteinAndrew EpsteinCSHARP9.0.18Error
Nov 2, 2026 16:45Andrew EpsteinAndrew EpsteinCSHARP9.0.18Error
Nov 2, 2026 16:42Andrew EpsteinAndrew EpsteinCSHARP9.0.18Error
Nov 2, 2026 16:39Andrew EpsteinAndrew EpsteinCPPg++14.2.0Success27,533
Nov 2, 2026 16:39Andrew EpsteinAndrew EpsteinCSHARP9.0.18Error
Nov 2, 2026 16:29Andrew EpsteinAndrew EpsteinCSHARP9.0.18Error
Nov 2, 2026 16:28Andrew EpsteinAndrew EpsteinZIG0.15.1Success1,248+349.99 RP
Nov 2, 2026 16:28Andrew EpsteinAndrew EpsteinRUSTrust-1.95.0Success1,218+564.92 RP
Nov 2, 2026 16:28Andrew EpsteinAndrew EpsteinGOgo1.26.2Success1,267+651.53 RP
Nov 2, 2026 16:04Andrew EpsteinAndrew EpsteinCPPg++14.2.0Success34,055
Nov 2, 2026 15:34Andrew EpsteinAndrew EpsteinZIG0.15.1Success1,305+1'678.39 RP
Nov 2, 2026 15:34Andrew EpsteinAndrew EpsteinCSHARP9.0.18Success1,422+1'019.12 RP
Nov 2, 2026 15:33Andrew EpsteinAndrew EpsteinRUSTrust-1.95.0Success1,308+1'884.89 RP
Nov 2, 2026 15:33Andrew EpsteinAndrew EpsteinGOgo1.26.2Success1,381+1'033.80 RP
Nov 2, 2026 15:12Andrew EpsteinAndrew EpsteinCPPg++14.2.0Success1,187+1'482.55 RP
Nov 2, 2026 15:09Andrew EpsteinAndrew EpsteinCPPg++14.2.0Success15,612
Nov 2, 2026 15:00Andrew EpsteinAndrew EpsteinCPPg++14.2.0Success1,334
Nov 2, 2026 15:00Andrew EpsteinAndrew EpsteinCPPg++14.2.0Success1,392
Nov 2, 2026 15:00Andrew EpsteinAndrew EpsteinCPPg++14.2.0Success1,405
Nov 2, 2026 14:57Andrew EpsteinAndrew EpsteinCPPg++14.2.0Success1,327+193.65 RP
Nov 2, 2026 14:54Andrew EpsteinAndrew EpsteinCPPg++14.2.0Success20,956
Nov 2, 2026 14:47Andrew EpsteinAndrew EpsteinCPPg++14.2.0Success4,041
Nov 2, 2026 14:45Andrew EpsteinAndrew EpsteinCPPclang++20.1.2Success18,286
Nov 2, 2026 14:37Andrew EpsteinAndrew EpsteinCPPg++14.2.0Success1,362+378.36 RP
Nov 2, 2026 14:36Andrew EpsteinAndrew EpsteinCPPg++14.2.0Success23,031
Nov 2, 2026 14:34Andrew EpsteinAndrew EpsteinCPPg++14.2.0Success23,594
Nov 2, 2026 14:33Andrew EpsteinAndrew EpsteinCPPg++14.2.0Success1,436+1'196.78 RP
Nov 2, 2026 14:30Andrew EpsteinAndrew EpsteinCPPg++14.2.0Success18,917
Nov 2, 2026 14:24Andrew EpsteinAndrew EpsteinCPPg++14.2.0Success18,896
Nov 2, 2026 14:23Andrew EpsteinAndrew EpsteinCPPg++14.2.0Success1,734+607.05 RP
Nov 2, 2026 14:18Andrew EpsteinAndrew EpsteinCPPg++14.2.0Success13,174
Nov 2, 2026 14:17Andrew EpsteinAndrew EpsteinCPPg++14.2.0Success1,938+354.58 RP
Nov 2, 2026 14:12Andrew EpsteinAndrew EpsteinCPPg++14.2.0Success30,838
Nov 2, 2026 14:10Andrew EpsteinAndrew EpsteinCPPg++14.2.0Success17,945+5.00 RP
Oct 26, 2026 23:27janwwwjanwwwGOgo1.26.2Success3,239
Oct 24, 2026 19:51janwwwjanwwwRUSTrust-1.95.0Success2,697
Oct 24, 2026 19:42janwwwjanwwwZIG0.15.1Success2,644
Oct 20, 2026 20:47janwwwjanwwwCPPclang++20.1.2Success2,732
Oct 20, 2026 20:10janwwwjanwwwCPPclang++20.1.2Success2,375
Oct 19, 2026 12:18highload-churnerhighload-churnerCPPg++14.2.0Success1,277+590.12 RP
Oct 19, 2026 12:13highload-churnerhighload-churnerCPPg++14.2.0Success1,328
Oct 19, 2026 12:06highload-churnerhighload-churnerCPPg++14.2.0Success1,357
Oct 19, 2026 12:01highload-churnerhighload-churnerCPPg++14.2.0Success1,334
Oct 19, 2026 11:48highload-churnerhighload-churnerCPPg++14.2.0Success1,327+5'235.55 RP
Oct 19, 2026 11:07highload-churnerhighload-churnerCPPg++14.2.0Success6,331
Oct 19, 2026 11:04highload-churnerhighload-churnerCPPg++14.2.0Success4,835
Oct 19, 2026 04:10zayd-ansari-codezayd-ansari-codeCPPg++10.5.0Success288,924+34.61 RP
Oct 18, 2026 09:00KacpxerKacpxerCPPg++14.2.0Error+475.33 RP
Oct 17, 2026 01:10Karthik ReddyKarthik ReddyCPPclang++18.1.3Success1,679
Oct 17, 2026 01:05Karthik ReddyKarthik ReddyCPPclang++18.1.3Error
Oct 17, 2026 01:04Karthik ReddyKarthik ReddyCPPclang++18.1.3Success1,870
Oct 16, 2026 22:06janwwwjanwwwZIG0.15.1Error+1'263.90 RP
Oct 16, 2026 22:00janwwwjanwwwRUSTrust-1.95.0Error+4'003.73 RP
Oct 16, 2026 21:32Karthik ReddyKarthik ReddyGOgo1.26.2Success1,718
Oct 16, 2026 21:31Karthik ReddyKarthik ReddyZIG0.15.1Success1,726
Oct 16, 2026 21:30Karthik ReddyKarthik ReddyRUSTrust-1.95.0Error+87.36 RP
Oct 16, 2026 21:28Karthik ReddyKarthik ReddyCPPclang++18.1.3Error+132.62 RP
Oct 15, 2026 15:20izotoffizotoffGOgo1.27.2Error
Oct 14, 2026 06:33Karthik ReddyKarthik ReddyCPPclang++18.1.3Error+67.91 RP
Oct 14, 2026 02:49Karthik ReddyKarthik ReddyGOgo1.26.2Success1,663
Oct 14, 2026 02:31Karthik ReddyKarthik ReddyZIG0.15.1Error