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
Dec 29, 2025 00:05Josu San MartinJosu San MartinRUSTrust-1.92.0Success5,247+17.99 RP
Dec 29, 2025 00:01Josu San MartinJosu San MartinCPPg++13.3.0Success5,398
Dec 28, 2025 23:58Josu San MartinJosu San MartinCPPclang++18.1.3Success5,388
Dec 28, 2025 23:45Josu San MartinJosu San MartinRUSTrust-1.92.0Success5,804
Dec 28, 2025 04:02Josu San MartinJosu San MartinZIG0.14.0Success25,884
Dec 28, 2025 03:01KeefeKeefeCPPg++13.3.0Success145,012
Dec 28, 2025 02:57Josu San MartinJosu San MartinZIG0.14.0Success22,920+73.56 RP
Dec 28, 2025 02:45Josu San MartinJosu San MartinZIG0.14.0Success27,568+63.86 RP
Dec 28, 2025 00:56regnivonregnivonRUSTrust-1.92.0Success131,491+18.74 RP
Dec 28, 2025 00:45regnivonregnivonRUSTrust-1.92.0Success174,500+6.82 RP
Dec 28, 2025 00:42regnivonregnivonRUSTrust-1.92.0Success203,049
Dec 28, 2025 00:38regnivonregnivonRUSTrust-1.92.0Success217,628
Dec 28, 2025 00:23regnivonregnivonRUSTrust-1.92.0Success223,578
Dec 28, 2025 00:15regnivonregnivonRUSTrust-1.92.0Error
Dec 28, 2025 00:07regnivonregnivonRUSTrust-1.92.0Error
Dec 27, 2025 23:01regnivonregnivonRUSTrust-1.92.0Success198,063+50.49 RP
Dec 27, 2025 22:34Josu San MartinJosu San MartinZIG0.14.0Success33,458
Dec 27, 2025 19:16Josu San MartinJosu San MartinGOgo1.25.5Success8,446+107.91 RP
Dec 27, 2025 18:57Josu San MartinJosu San MartinCPPclang++18.1.3Success5,142+217.56 RP
Dec 27, 2025 18:15Josu San MartinJosu San MartinGOgo1.25.5Success9,876
Dec 27, 2025 16:02Josu San MartinJosu San MartinGOgo1.25.5Success9,796
Dec 27, 2025 15:33Josu San MartinJosu San MartinGOgo1.25.5Success9,293+90.95 RP
Dec 27, 2025 15:25Josu San MartinJosu San MartinRUSTrust-1.92.0Success5,449
Dec 27, 2025 15:24Josu San MartinJosu San MartinCPPclang++18.1.3Success5,641
Dec 27, 2025 15:19Josu San MartinJosu San MartinCPPclang++18.1.3Success5,605+114.67 RP
Dec 27, 2025 15:10Josu San MartinJosu San MartinRUSTrust-1.92.0Success5,936
Dec 26, 2025 23:39Josu San MartinJosu San MartinRUSTrust-1.92.0Success5,297+114.06 RP
Dec 26, 2025 23:36Josu San MartinJosu San MartinRUSTrust-1.92.0Success5,665
Dec 26, 2025 23:35Josu San MartinJosu San MartinRUSTrust-1.92.0Success5,959
Dec 26, 2025 23:35Josu San MartinJosu San MartinRUSTrust-1.92.0Success5,641
Dec 26, 2025 23:35Josu San MartinJosu San MartinRUSTrust-1.92.0Success6,012
Dec 26, 2025 23:25Josu San MartinJosu San MartinRUSTrust-1.92.0Success5,462+372.72 RP
Dec 26, 2025 23:23Josu San MartinJosu San MartinCPPclang++18.1.3Success14,496
Dec 26, 2025 23:13Josu San MartinJosu San MartinGOgo1.25.5Success10,688
Dec 26, 2025 23:02Josu San MartinJosu San MartinCPPclang++18.1.3Success6,387
Dec 26, 2025 22:57Josu San MartinJosu San MartinRUSTrust-1.92.0Success6,431
Dec 26, 2025 22:56Josu San MartinJosu San MartinCPPclang++18.1.3Success6,307
Dec 26, 2025 22:55Josu San MartinJosu San MartinGOgo1.25.5Success10,151+3.77 RP
Dec 26, 2025 22:53Josu San MartinJosu San MartinRUSTrust-1.92.0Success6,081+14.54 RP
Dec 26, 2025 22:48Josu San MartinJosu San MartinRUSTrust-1.92.0Success6,334
Dec 26, 2025 22:38Josu San MartinJosu San MartinGOgo1.25.5Success10,190+531.19 RP
Dec 26, 2025 22:36Josu San MartinJosu San MartinRUSTrust-1.92.0Success6,143
Dec 26, 2025 22:36Josu San MartinJosu San MartinRUSTrust-1.92.0Success7,308
Dec 26, 2025 22:36Josu San MartinJosu San MartinRUSTrust-1.92.0Success6,764
Dec 26, 2025 22:34Josu San MartinJosu San MartinCPPclang++18.1.3Success7,279
Dec 26, 2025 22:34Josu San MartinJosu San MartinCPPclang++18.1.3Success6,929
Dec 26, 2025 22:32Josu San MartinJosu San MartinRUSTrust-1.92.0Success6,108+48.65 RP
Dec 26, 2025 22:23Josu San MartinJosu San MartinCPPclang++18.1.3Success6,413
Dec 26, 2025 22:09Josu San MartinJosu San MartinCPPg++13.3.0Success7,913
Dec 26, 2025 22:04Josu San MartinJosu San MartinCPPclang++18.1.3Success6,620
Dec 26, 2025 17:35Josu San MartinJosu San MartinRUSTrust-1.92.0Success6,684
Dec 26, 2025 17:34Josu San MartinJosu San MartinRUSTrust-1.92.0Success6,512
Dec 26, 2025 17:32Josu San MartinJosu San MartinRUSTrust-1.92.0Success6,294+83.92 RP
Dec 26, 2025 17:30Josu San MartinJosu San MartinRUSTrust-1.92.0Success6,645+27.13 RP
Dec 26, 2025 17:28Josu San MartinJosu San MartinRUSTrust-1.92.0Success6,767+170.91 RP
Dec 26, 2025 17:15Josu San MartinJosu San MartinRUSTrust-1.92.0Success8,063
Dec 26, 2025 17:06Josu San MartinJosu San MartinRUSTrust-1.92.0Success7,892
Dec 26, 2025 16:42Josu San MartinJosu San MartinRUSTrust-1.92.0Error
Dec 26, 2025 15:38Josu San MartinJosu San MartinRUSTrust-1.92.0Success7,652+9.33 RP
Dec 26, 2025 15:38Josu San MartinJosu San MartinRUSTrust-1.92.0Success7,707+59.28 RP
Dec 26, 2025 15:33Josu San MartinJosu San MartinRUSTrust-1.92.0Success8,076+3.52 RP
Dec 26, 2025 15:30Josu San MartinJosu San MartinRUSTrust-1.92.0Success8,218
Dec 26, 2025 15:22Josu San MartinJosu San MartinRUSTrust-1.92.0Success8,099+79.32 RP
Dec 26, 2025 15:16Josu San MartinJosu San MartinRUSTrust-1.92.0Success9,186
Dec 26, 2025 15:14Josu San MartinJosu San MartinRUSTrust-1.92.0Success8,934
Dec 26, 2025 15:13Josu San MartinJosu San MartinRUSTrust-1.92.0Success8,831
Dec 26, 2025 15:04Josu San MartinJosu San MartinRUSTrust-1.92.0Success8,655+267.07 RP
Dec 26, 2025 14:32Josu San MartinJosu San MartinRUSTrust-1.92.0Error
Dec 26, 2025 04:24Josu San MartinJosu San MartinRUSTrust-1.92.0Error
Dec 26, 2025 03:42Josu San MartinJosu San MartinRUSTrust-1.92.0Success13,408
Dec 26, 2025 03:41Josu San MartinJosu San MartinRUSTrust-1.92.0Success11,257+113.56 RP
Dec 26, 2025 03:30Josu San MartinJosu San MartinRUSTrust-1.92.0Success14,126
Dec 26, 2025 03:27Josu San MartinJosu San MartinRUSTrust-1.92.0Success15,522
Dec 26, 2025 03:04Josu San MartinJosu San MartinRUSTrust-1.92.0Success24,397
Dec 26, 2025 03:04Josu San MartinJosu San MartinRUSTrust-1.92.0Success13,535
Dec 26, 2025 03:04Josu San MartinJosu San MartinRUSTrust-1.92.0Success14,328
Dec 26, 2025 01:32Josu San MartinJosu San MartinRUSTrust-1.92.0Error
Dec 26, 2025 01:25Josu San MartinJosu San MartinRUSTrust-1.92.0Error
Dec 26, 2025 01:10Josu San MartinJosu San MartinRUSTrust-1.92.0Success13,538
Dec 26, 2025 01:09Josu San MartinJosu San MartinRUSTrust-1.92.0Success13,240
Dec 26, 2025 01:04Josu San MartinJosu San MartinRUSTrust-1.92.0Success13,445
Dec 25, 2025 22:04Josu San MartinJosu San MartinRUSTrust-1.92.0Success13,265
Dec 25, 2025 22:02Josu San MartinJosu San MartinRUSTrust-1.92.0Success13,793
Dec 25, 2025 21:55Josu San MartinJosu San MartinRUSTrust-1.92.0Success21,288
Dec 25, 2025 21:54Josu San MartinJosu San MartinRUSTrust-1.92.0Success20,326
Dec 25, 2025 21:53Josu San MartinJosu San MartinRUSTrust-1.92.0Success14,024
Dec 25, 2025 21:52Josu San MartinJosu San MartinRUSTrust-1.92.0Success13,436
Dec 25, 2025 21:51Josu San MartinJosu San MartinRUSTrust-1.92.0Success13,830
Dec 25, 2025 21:50Josu San MartinJosu San MartinRUSTrust-1.92.0Success13,448
Dec 25, 2025 21:14Josu San MartinJosu San MartinRUSTrust-1.92.0Success15,555
Dec 25, 2025 21:10Josu San MartinJosu San MartinRUSTrust-1.92.0Success14,303
Dec 25, 2025 21:04Josu San MartinJosu San MartinRUSTrust-1.92.0Success14,894
Dec 25, 2025 19:27Josu San MartinJosu San MartinRUSTrust-1.92.0Success13,656
Dec 25, 2025 19:26Josu San MartinJosu San MartinRUSTrust-1.92.0Success16,446
Dec 25, 2025 19:24Josu San MartinJosu San MartinRUSTrust-1.92.0Success12,907+20.80 RP
Dec 25, 2025 19:24Josu San MartinJosu San MartinRUSTrust-1.92.0Success13,263+17.98 RP
Dec 25, 2025 19:23Josu San MartinJosu San MartinRUSTrust-1.92.0Success14,544
Dec 25, 2025 18:26Josu San MartinJosu San MartinRUSTrust-1.92.0Success13,982
Dec 25, 2025 18:24Josu San MartinJosu San MartinRUSTrust-1.92.0Success13,709
Dec 25, 2025 18:19Josu San MartinJosu San MartinRUSTrust-1.92.0Success14,212