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 25, 2025 16:36Josu San MartinJosu San MartinRUSTrust-1.92.0Success14,906
Dec 25, 2025 16:29Josu San MartinJosu San MartinRUSTrust-1.92.0Success13,587+6.23 RP
Dec 25, 2025 16:19Josu San MartinJosu San MartinRUSTrust-1.92.0Success14,906
Dec 25, 2025 16:05Josu San MartinJosu San MartinRUSTrust-1.92.0Success15,216
Dec 25, 2025 15:58Josu San MartinJosu San MartinRUSTrust-1.92.0Success13,703+0.59 RP
Dec 25, 2025 05:24Josu San MartinJosu San MartinCPPclang++18.1.3Success194,094
Dec 25, 2025 05:24Josu San MartinJosu San MartinCPPclang++18.1.3Success48,960
Dec 25, 2025 05:24Josu San MartinJosu San MartinCPPclang++18.1.3Success50,375
Dec 25, 2025 05:21Josu San MartinJosu San MartinCPPclang++18.1.3Success109,125
Dec 25, 2025 05:13Josu San MartinJosu San MartinRUSTrust-1.92.0Success13,714+33.14 RP
Dec 25, 2025 05:13Josu San MartinJosu San MartinRUSTrust-1.92.0Success15,845
Dec 25, 2025 04:26Josu San MartinJosu San MartinRUSTrust-1.92.0Success14,367+2.80 RP
Dec 25, 2025 04:24Josu San MartinJosu San MartinGOgo1.25.5Success22,214+36.62 RP
Dec 25, 2025 04:23Josu San MartinJosu San MartinGOgo1.25.5Success24,181+15.82 RP
Dec 25, 2025 04:23Josu San MartinJosu San MartinGOgo1.25.5Success26,579
Dec 25, 2025 04:23Josu San MartinJosu San MartinGOgo1.25.5Success25,420
Dec 25, 2025 04:19Josu San MartinJosu San MartinCPPclang++18.1.3Success16,978
Dec 25, 2025 04:18Josu San MartinJosu San MartinCPPclang++18.1.3Success14,425+6.76 RP
Dec 25, 2025 04:18Josu San MartinJosu San MartinCPPg++13.3.0Success14,770
Dec 25, 2025 04:16Josu San MartinJosu San MartinCPPg++13.3.0Success18,821
Dec 25, 2025 04:12Josu San MartinJosu San MartinRUSTrust-1.92.0Success24,282
Dec 25, 2025 04:10Josu San MartinJosu San MartinRUSTrust-1.92.0Success14,652
Dec 25, 2025 04:10Josu San MartinJosu San MartinGOgo1.25.5Success25,143+39.33 RP
Dec 25, 2025 04:00Josu San MartinJosu San MartinGOgo1.25.5Success27,902+9.98 RP
Dec 25, 2025 03:59Josu San MartinJosu San MartinGOgo1.25.5Success28,701+206.46 RP
Dec 25, 2025 03:57Josu San MartinJosu San MartinCPPg++13.3.0Success14,900
Dec 25, 2025 03:56Josu San MartinJosu San MartinRUSTrust-1.92.0Success14,674
Dec 25, 2025 03:55Josu San MartinJosu San MartinRUSTrust-1.92.0Success14,750
Dec 25, 2025 03:54Josu San MartinJosu San MartinRUSTrust-1.92.0Success15,072
Dec 25, 2025 03:46Josu San MartinJosu San MartinRUSTrust-1.92.0Success15,228
Dec 25, 2025 01:40Josu San MartinJosu San MartinRUSTrust-1.92.0Success14,567+0.71 RP
Dec 25, 2025 01:36Josu San MartinJosu San MartinCPPg++13.3.0Success15,335
Dec 25, 2025 01:30Josu San MartinJosu San MartinRUSTrust-1.92.0Success14,599
Dec 25, 2025 01:27Josu San MartinJosu San MartinCPPclang++18.1.3Success16,289
Dec 25, 2025 01:21Josu San MartinJosu San MartinRUSTrust-1.92.0Error
Dec 25, 2025 01:21Josu San MartinJosu San MartinRUSTrust-1.92.0Error
Dec 25, 2025 01:21Josu San MartinJosu San MartinRUSTrust-1.92.0Error
Dec 25, 2025 01:18Josu San MartinJosu San MartinCPPclang++18.1.3Error
Dec 25, 2025 01:10Josu San MartinJosu San MartinCPPclang++18.1.3Error
Dec 25, 2025 01:10Josu San MartinJosu San MartinCPPg++13.3.0Error
Dec 25, 2025 01:10Josu San MartinJosu San MartinCPPg++13.3.0Error
Dec 25, 2025 01:08Josu San MartinJosu San MartinRUSTrust-1.92.0Success14,940
Dec 25, 2025 01:04Josu San MartinJosu San MartinRUSTrust-1.92.0Error
Dec 25, 2025 01:03Josu San MartinJosu San MartinRUSTrust-1.92.0Error
Dec 24, 2025 22:25Josu San MartinJosu San MartinRUSTrust-1.92.0Success14,885
Dec 24, 2025 22:24Josu San MartinJosu San MartinRUSTrust-1.92.0Success15,934
Dec 24, 2025 22:22Josu San MartinJosu San MartinRUSTrust-1.92.0Success14,582+15.22 RP
Dec 24, 2025 22:21Josu San MartinJosu San MartinRUSTrust-1.92.0Success41,617
Dec 24, 2025 22:20Josu San MartinJosu San MartinRUSTrust-1.92.0Success1,511,272
Dec 24, 2025 22:19Josu San MartinJosu San MartinRUSTrust-1.92.0Success16,762
Dec 24, 2025 22:19Josu San MartinJosu San MartinRUSTrust-1.92.0Success29,810
Dec 24, 2025 22:18Josu San MartinJosu San MartinRUSTrust-1.92.0Success18,704
Dec 24, 2025 22:18Josu San MartinJosu San MartinRUSTrust-1.92.0Success59,419
Dec 24, 2025 22:16Josu San MartinJosu San MartinRUSTrust-1.92.0Success17,448
Dec 24, 2025 22:14Josu San MartinJosu San MartinRUSTrust-1.92.0Success14,913+3.13 RP
Dec 24, 2025 22:14Josu San MartinJosu San MartinRUSTrust-1.92.0Error
Dec 24, 2025 22:13Josu San MartinJosu San MartinRUSTrust-1.92.0Success1,040,124
Dec 24, 2025 22:13Josu San MartinJosu San MartinRUSTrust-1.92.0Success14,983+83.04 RP
Dec 24, 2025 22:12Josu San MartinJosu San MartinRUSTrust-1.92.0Success17,978
Dec 24, 2025 22:10Josu San MartinJosu San MartinRUSTrust-1.92.0Success17,112+2.92 RP
Dec 24, 2025 22:08Josu San MartinJosu San MartinRUSTrust-1.92.0Error
Dec 24, 2025 22:05Josu San MartinJosu San MartinRUSTrust-1.92.0Success941,546
Dec 24, 2025 22:04Josu San MartinJosu San MartinRUSTrust-1.92.0Error
Dec 24, 2025 22:04Josu San MartinJosu San MartinRUSTrust-1.92.0Success20,682
Dec 24, 2025 22:02Josu San MartinJosu San MartinRUSTrust-1.92.0Error
Dec 24, 2025 22:02Josu San MartinJosu San MartinRUSTrust-1.92.0Error
Dec 24, 2025 21:57Josu San MartinJosu San MartinRUSTrust-1.92.0Error
Dec 24, 2025 21:50Josu San MartinJosu San MartinRUSTrust-1.92.0Error
Dec 24, 2025 21:47Josu San MartinJosu San MartinRUSTrust-1.92.0Error
Dec 24, 2025 21:39Josu San MartinJosu San MartinRUSTrust-1.92.0Error
Dec 24, 2025 21:39Josu San MartinJosu San MartinRUSTrust-1.92.0Error
Dec 24, 2025 21:39Josu San MartinJosu San MartinRUSTrust-1.92.0Error
Dec 24, 2025 21:38Josu San MartinJosu San MartinRUSTrust-1.92.0Error
Dec 24, 2025 21:38Josu San MartinJosu San MartinRUSTrust-1.92.0Error
Dec 24, 2025 15:00Josu San MartinJosu San MartinRUSTrust-1.92.0Success21,492
Dec 24, 2025 04:43Josu San MartinJosu San MartinRUSTrust-1.92.0Error
Dec 24, 2025 04:43Josu San MartinJosu San MartinRUSTrust-1.92.0Success18,415
Dec 24, 2025 04:34Josu San MartinJosu San MartinRUSTrust-1.92.0Success19,544
Dec 24, 2025 04:33Josu San MartinJosu San MartinRUSTrust-1.92.0Success27,648
Dec 24, 2025 04:28Josu San MartinJosu San MartinRUSTrust-1.92.0Success17,198+7.67 RP
Dec 24, 2025 04:26Josu San MartinJosu San MartinRUSTrust-1.92.0Success22,014
Dec 24, 2025 04:25Josu San MartinJosu San MartinRUSTrust-1.92.0Success17,977
Dec 24, 2025 04:25Josu San MartinJosu San MartinRUSTrust-1.92.0Error
Dec 24, 2025 04:25Josu San MartinJosu San MartinRUSTrust-1.92.0Success21,728
Dec 24, 2025 04:21Josu San MartinJosu San MartinRUSTrust-1.92.0Success18,430
Dec 24, 2025 04:15Josu San MartinJosu San MartinRUSTrust-1.92.0Error
Dec 24, 2025 04:14Josu San MartinJosu San MartinRUSTrust-1.92.0Error
Dec 24, 2025 04:12Josu San MartinJosu San MartinRUSTrust-1.92.0Success18,784
Dec 24, 2025 04:11Josu San MartinJosu San MartinRUSTrust-1.92.0Error
Dec 24, 2025 04:09Josu San MartinJosu San MartinRUSTrust-1.92.0Success21,140
Dec 24, 2025 04:09Josu San MartinJosu San MartinRUSTrust-1.92.0Success18,752
Dec 24, 2025 04:04Josu San MartinJosu San MartinRUSTrust-1.92.0Success112,703
Dec 24, 2025 04:03Josu San MartinJosu San MartinRUSTrust-1.92.0Error
Dec 24, 2025 03:56Josu San MartinJosu San MartinRUSTrust-1.92.0Success18,949
Dec 24, 2025 03:49Josu San MartinJosu San MartinRUSTrust-1.92.0Success21,256
Dec 24, 2025 03:49Josu San MartinJosu San MartinRUSTrust-1.92.0Error
Dec 24, 2025 03:49Josu San MartinJosu San MartinRUSTrust-1.92.0Success19,223
Dec 24, 2025 03:49Josu San MartinJosu San MartinRUSTrust-1.92.0Success17,428+131.60 RP
Dec 24, 2025 03:42Josu San MartinJosu San MartinRUSTrust-1.92.0Error
Dec 24, 2025 03:40Josu San MartinJosu San MartinRUSTrust-1.92.0Success22,615+205.92 RP