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 24, 2025 03:39Josu San MartinJosu San MartinRUSTrust-1.92.0Error
Dec 24, 2025 03:34Josu San MartinJosu San MartinRUSTrust-1.92.0Error
Dec 24, 2025 03:32Josu San MartinJosu San MartinRUSTrust-1.92.0Error
Dec 24, 2025 03:31Josu San MartinJosu San MartinRUSTrust-1.92.0Success42,326+19.00 RP
Dec 24, 2025 03:27Josu San MartinJosu San MartinRUSTrust-1.92.0Success64,881
Dec 24, 2025 03:23Josu San MartinJosu San MartinRUSTrust-1.92.0Error
Dec 24, 2025 03:20Josu San MartinJosu San MartinRUSTrust-1.92.0Success132,526
Dec 24, 2025 03:16Josu San MartinJosu San MartinRUSTrust-1.92.0Error
Dec 24, 2025 03:14Josu San MartinJosu San MartinRUSTrust-1.92.0Error
Dec 24, 2025 03:12Josu San MartinJosu San MartinRUSTrust-1.92.0Error
Dec 24, 2025 03:11Josu San MartinJosu San MartinRUSTrust-1.92.0Success143,153
Dec 24, 2025 03:11Josu San MartinJosu San MartinRUSTrust-1.92.0Success46,027+17.30 RP
Dec 24, 2025 03:10Josu San MartinJosu San MartinRUSTrust-1.92.0Success97,513
Dec 24, 2025 01:20Josu San MartinJosu San MartinRUSTrust-1.92.0Error
Dec 24, 2025 01:17Josu San MartinJosu San MartinRUSTrust-1.92.0Error
Dec 24, 2025 01:17Josu San MartinJosu San MartinRUSTrust-1.92.0Success353,445
Dec 24, 2025 01:09Josu San MartinJosu San MartinRUSTrust-1.92.0Success50,059
Dec 24, 2025 01:07Josu San MartinJosu San MartinRUSTrust-1.92.0Error
Dec 24, 2025 01:03Josu San MartinJosu San MartinRUSTrust-1.92.0Error
Dec 24, 2025 01:03Josu San MartinJosu San MartinRUSTrust-1.92.0Success71,392
Dec 24, 2025 01:03Josu San MartinJosu San MartinRUSTrust-1.92.0Success308,791
Dec 24, 2025 01:02Josu San MartinJosu San MartinRUSTrust-1.92.0Success83,094
Dec 24, 2025 00:58Josu San MartinJosu San MartinRUSTrust-1.92.0Success1,026,460
Dec 24, 2025 00:56Josu San MartinJosu San MartinRUSTrust-1.92.0Success53,810
Dec 24, 2025 00:56Josu San MartinJosu San MartinRUSTrust-1.92.0Success1,335,284
Dec 24, 2025 00:55Josu San MartinJosu San MartinRUSTrust-1.92.0Success50,010+5.55 RP
Dec 24, 2025 00:43Josu San MartinJosu San MartinRUSTrust-1.92.0Success130,103
Dec 24, 2025 00:42Josu San MartinJosu San MartinRUSTrust-1.92.0Success129,915
Dec 23, 2025 16:24Josu San MartinJosu San MartinRUSTrust-1.92.0Error
Dec 23, 2025 14:54Josu San MartinJosu San MartinRUSTrust-1.92.0Success80,480
Dec 23, 2025 05:36Josu San MartinJosu San MartinRUSTrust-1.92.0Success63,800
Dec 23, 2025 05:31Josu San MartinJosu San MartinRUSTrust-1.92.0Success57,773
Dec 23, 2025 05:28Josu San MartinJosu San MartinRUSTrust-1.92.0Success60,972
Dec 23, 2025 05:27Josu San MartinJosu San MartinRUSTrust-1.92.0Success53,468
Dec 23, 2025 05:27Josu San MartinJosu San MartinRUSTrust-1.92.0Success51,439+32.03 RP
Dec 23, 2025 04:13Josu San MartinJosu San MartinCPPg++13.3.0Success121,311
Dec 23, 2025 04:10Josu San MartinJosu San MartinCPPg++13.3.0Success121,309
Dec 23, 2025 04:09Josu San MartinJosu San MartinCPPg++13.3.0Success109,365
Dec 22, 2025 22:50Josu San MartinJosu San MartinCPPg++13.3.0Success61,584+4.38 RP
Dec 22, 2025 15:23Josu San MartinJosu San MartinRUSTrust-1.92.0Success68,657
Dec 22, 2025 15:15Josu San MartinJosu San MartinRUSTrust-1.92.0Success83,738
Dec 22, 2025 04:05Josu San MartinJosu San MartinRUSTrust-1.92.0Success78,103
Dec 22, 2025 03:00Josu San MartinJosu San MartinRUSTrust-1.92.0Error
Dec 22, 2025 02:53Josu San MartinJosu San MartinRUSTrust-1.92.0Success100,179
Dec 22, 2025 02:40Josu San MartinJosu San MartinRUSTrust-1.92.0Success216,734
Dec 22, 2025 02:37Josu San MartinJosu San MartinRUSTrust-1.92.0Error
Dec 22, 2025 02:33Josu San MartinJosu San MartinRUSTrust-1.92.0Success71,970
Dec 22, 2025 02:08Josu San MartinJosu San MartinRUSTrust-1.92.0Error
Dec 21, 2025 16:04Josu San MartinJosu San MartinRUSTrust-1.92.0Success141,057
Dec 21, 2025 15:57Josu San MartinJosu San MartinRUSTrust-1.92.0Success68,095
Dec 21, 2025 15:55Josu San MartinJosu San MartinRUSTrust-1.92.0Success72,145
Dec 21, 2025 05:15Josu San MartinJosu San MartinRUSTrust-1.92.0Success80,424
Dec 21, 2025 05:13Josu San MartinJosu San MartinRUSTrust-1.92.0Success99,058
Dec 21, 2025 04:46Josu San MartinJosu San MartinRUSTrust-1.92.0Error
Dec 21, 2025 04:32Josu San MartinJosu San MartinRUSTrust-1.92.0Success89,353
Dec 21, 2025 04:16Josu San MartinJosu San MartinRUSTrust-1.92.0Error
Dec 21, 2025 03:59Josu San MartinJosu San MartinRUSTrust-1.92.0Success120,207
Dec 21, 2025 03:56Josu San MartinJosu San MartinRUSTrust-1.92.0Success63,290+6.13 RP
Dec 21, 2025 03:55Josu San MartinJosu San MartinRUSTrust-1.92.0Success152,145
Dec 20, 2025 20:11Josu San MartinJosu San MartinRUSTrust-1.92.0Success66,975
Dec 20, 2025 18:47Josu San MartinJosu San MartinRUSTrust-1.92.0Success68,524
Dec 20, 2025 12:07idatsyidatsyRUSTrust-1.92.0Success40,753+89.54 RP
Dec 19, 2025 19:56idatsyidatsyRUSTrust-1.92.0Success64,167+107.73 RP
Dec 19, 2025 19:38Josu San MartinJosu San MartinRUSTrust-1.92.0Success90,008
Dec 19, 2025 19:31idatsyidatsyRUSTrust-1.92.0Success207,853+48.11 RP
Dec 19, 2025 19:04Josu San MartinJosu San MartinRUSTrust-1.92.0Success65,843+1.08 RP
Dec 19, 2025 18:38Josu San MartinJosu San MartinRUSTrust-1.92.0Success66,316+0.74 RP
Dec 19, 2025 18:35Josu San MartinJosu San MartinRUSTrust-1.92.0Success74,120
Dec 19, 2025 18:28Josu San MartinJosu San MartinRUSTrust-1.92.0Success66,645+47.43 RP
Dec 19, 2025 18:12Josu San MartinJosu San MartinRUSTrust-1.92.0Success193,399
Dec 19, 2025 17:38Josu San MartinJosu San MartinRUSTrust-1.92.0Error
Dec 19, 2025 16:54Josu San MartinJosu San MartinRUSTrust-1.92.0Error
Dec 19, 2025 16:46Josu San MartinJosu San MartinRUSTrust-1.92.0Success97,568
Dec 19, 2025 16:45Josu San MartinJosu San MartinRUSTrust-1.92.0Success148,786
Dec 19, 2025 16:40Josu San MartinJosu San MartinRUSTrust-1.92.0Success311,167
Dec 19, 2025 16:06Josu San MartinJosu San MartinRUSTrust-1.92.0Success97,444+84.64 RP
Dec 19, 2025 15:27Josu San MartinJosu San MartinRUSTrust-1.92.0Success556,027+17.98 RP
Dec 19, 2025 15:25Josu San MartinJosu San MartinRUSTrust-1.92.0Error
Dec 19, 2025 15:11Josu San MartinJosu San MartinRUSTrust-1.92.0Error
Nov 26, 2025 14:06izotoffizotoffCPPg++13.3.0Error
Nov 26, 2025 13:40izotoffizotoffGOgo1.25.4Success71,469
Nov 26, 2025 12:35izotoffizotoffGOgo1.25.4Success70,444+5.04 RP
Nov 26, 2025 12:19izotoffizotoffGOgo1.25.4Success71,715+36.04 RP
Nov 26, 2025 12:09izotoffizotoffGOgo1.25.4Success82,356+119.46 RP
Nov 26, 2025 08:15izotoffizotoffGOgo1.25.4Error
Nov 26, 2025 08:12izotoffizotoffGOgo1.25.4Error
Nov 26, 2025 07:38izotoffizotoffGOgo1.25.4Success162,078+60.00 RP
Nov 26, 2025 07:34izotoffizotoffGOgo1.25.4Error
Nov 26, 2025 07:32izotoffizotoffGOgo1.25.4Error
Nov 26, 2025 06:46izotoffizotoffGOgo1.25.4Error
Nov 24, 2025 13:04izotoffizotoffGOgo1.23.12Success317,491
Nov 24, 2025 12:42izotoffizotoffGOgo1.23.12Error
Nov 24, 2025 11:59izotoffizotoffGOgo1.25.4Success315,507+37.90 RP
Nov 24, 2025 11:36izotoffizotoffGOgo1.25.4Error
Nov 23, 2025 17:30izotoffizotoffGOgo1.25.4Error
Nov 23, 2025 16:26izotoffizotoffGOgo1.25.4Error
Nov 22, 2025 22:19izotoffizotoffGOgo1.25.4Error
Nov 22, 2025 21:49izotoffizotoffGOgo1.25.4Error
Nov 21, 2025 12:48izotoffizotoffGOgo1.25.4Error
Nov 21, 2025 12:39izotoffizotoffGOgo1.25.4Error