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
Apr 27, 2026 21:52TudyMTudyMCPPg++14.2.0Error
Apr 27, 2026 12:49Charles CabergsCharles CabergsCPPg++13.3.0Success63,340
Apr 27, 2026 08:12olliecrowolliecrowGOgo1.26.2Success6,426
Apr 27, 2026 07:02olliecrowolliecrowRUSTrust-1.95.0Success5,297
Apr 27, 2026 06:34olliecrowolliecrowCPPg++13.3.0Success5,396
Apr 27, 2026 01:03Charles CabergsCharles CabergsCPPg++13.3.0Success60,070
Apr 26, 2026 22:23Charles CabergsCharles CabergsCPPg++13.3.0Success60,837
Apr 26, 2026 20:56TudyMTudyMCPPclang++20.1.2Success263,148
Apr 26, 2026 20:53TudyMTudyMCPPclang++20.1.2Success258,933+3.78 RP
Apr 26, 2026 20:40TudyMTudyMCPPclang++20.1.2Success297,048
Apr 26, 2026 20:38TudyMTudyMCPPclang++20.1.2Success290,860
Apr 26, 2026 20:36TudyMTudyMCPPg++14.2.0Success370,805
Apr 26, 2026 20:34TudyMTudyMCPPg++14.2.0Success356,563
Apr 26, 2026 17:51TudyMTudyMCPPg++10.5.0Success372,257
Apr 26, 2026 17:26TudyMTudyMCPPg++10.5.0Success287,008+34.84 RP
Apr 26, 2026 14:34olliecrowolliecrowGOgo1.26.2Success5,957
Apr 26, 2026 12:13olliecrowolliecrowCPPg++10.5.0Success5,940
Apr 26, 2026 12:03olliecrowolliecrowCPPg++10.5.0Success5,703
Apr 26, 2026 07:40olliecrowolliecrowRUSTrust-1.95.0Success5,405
Apr 25, 2026 10:05olliecrowolliecrowGOgo1.26.2Success6,222
Apr 24, 2026 08:17Dominique GarmierDominique GarmierCPPclang++18.1.3Success15,169
Apr 24, 2026 07:48Dominique GarmierDominique GarmierCPPclang++18.1.3Success13,918
Apr 24, 2026 07:46Dominique GarmierDominique GarmierCPPclang++18.1.3Success14,464
Apr 24, 2026 07:45Dominique GarmierDominique GarmierCPPclang++18.1.3Success15,809
Apr 24, 2026 07:44Dominique GarmierDominique GarmierCPPclang++18.1.3Success14,812
Apr 24, 2026 07:43Dominique GarmierDominique GarmierCPPclang++18.1.3Success13,500+55.72 RP
Apr 24, 2026 04:26olliecrowolliecrowRUSTrust-1.95.0Success5,047
Apr 23, 2026 20:25Donald LeeDonald LeeRUSTrust-1.95.0Success30,266+0.95 RP
Apr 23, 2026 19:07Donald LeeDonald LeeRUSTrust-1.95.0Success181,832
Apr 23, 2026 10:05Dominique GarmierDominique GarmierCPPclang++18.1.3Success16,987
Apr 23, 2026 10:03Dominique GarmierDominique GarmierCPPclang++18.1.3Success15,657
Apr 23, 2026 10:01Dominique GarmierDominique GarmierCPPclang++18.1.3Success16,057
Apr 23, 2026 09:15Dominique GarmierDominique GarmierCPPclang++18.1.3Success14,894
Apr 23, 2026 09:02Dominique GarmierDominique GarmierCPPclang++20.1.2Success15,625
Apr 23, 2026 09:01Dominique GarmierDominique GarmierCPPclang++18.1.3Success22,464
Apr 23, 2026 08:58Dominique GarmierDominique GarmierCPPclang++18.1.3Success24,457
Apr 23, 2026 08:55Dominique GarmierDominique GarmierCPPclang++18.1.3Success23,392
Apr 23, 2026 08:28Dominique GarmierDominique GarmierCPPclang++18.1.3Success78,017
Apr 23, 2026 08:26Dominique GarmierDominique GarmierCPPclang++18.1.3Error
Apr 23, 2026 08:06Dominique GarmierDominique GarmierCPPclang++18.1.3Success15,320
Apr 23, 2026 08:00Dominique GarmierDominique GarmierCPPg++10.5.0Success16,812
Apr 23, 2026 07:58Dominique GarmierDominique GarmierCPPclang++18.1.3Success14,946
Apr 23, 2026 06:19olliecrowolliecrowGOgo1.26.2Success6,289
Apr 22, 2026 23:36Charles CabergsCharles CabergsCPPg++13.3.0Success59,874
Apr 22, 2026 22:03olliecrowolliecrowCPPg++10.5.0Success5,582
Apr 22, 2026 22:01olliecrowolliecrowRUSTrust-1.95.0Success5,299
Apr 22, 2026 20:47Dominique GarmierDominique GarmierCPPg++10.5.0Success18,366
Apr 22, 2026 20:25Dominique GarmierDominique GarmierCPPclang++18.1.3Success17,282
Apr 22, 2026 20:04Charles CabergsCharles CabergsCPPg++13.3.0Success58,998+6.67 RP
Apr 22, 2026 16:48olliecrowolliecrowCPPg++10.5.0Success5,550
Apr 22, 2026 14:53Dominique GarmierDominique GarmierCPPclang++18.1.3Success429,766
Apr 22, 2026 13:41BenBenCPPg++14.2.0Success116,810
Apr 22, 2026 12:02Dominique GarmierDominique GarmierCPPclang++18.1.3Success22,366
Apr 22, 2026 08:27olliecrowolliecrowCSHARP9.0.15Success7,342
Apr 22, 2026 08:02olliecrowolliecrowCPPg++10.5.0Success5,500
Apr 21, 2026 20:23olliecrowolliecrowCPPg++10.5.0Success6,172
Apr 21, 2026 18:50olliecrowolliecrowCPPg++10.5.0Success5,980
Apr 21, 2026 18:31olliecrowolliecrowCPPg++10.5.0Success6,244
Apr 21, 2026 17:39Charles CabergsCharles CabergsCPPg++13.3.0Success67,813
Apr 21, 2026 10:04Dominique GarmierDominique GarmierCPPclang++18.1.3Success25,900
Apr 21, 2026 09:54Dominique GarmierDominique GarmierCPPg++13.3.0Error
Apr 21, 2026 09:40Dominique GarmierDominique GarmierCPPclang++18.1.3Error
Apr 21, 2026 09:07Charles CabergsCharles CabergsCPPg++13.3.0Success66,492
Apr 21, 2026 04:04olliecrowolliecrowCPPg++10.5.0Success6,252
Apr 21, 2026 03:23Charles CabergsCharles CabergsCPPg++13.3.0Success68,190
Apr 21, 2026 01:30Taylor DettlingTaylor DettlingRUSTrust-1.95.0Success268,197+37.29 RP
Apr 20, 2026 21:15Charles CabergsCharles CabergsCPPg++13.3.0Success63,184
Apr 20, 2026 20:22Charles CabergsCharles CabergsCPPg++13.3.0Error
Apr 20, 2026 19:09BenBenCPPg++14.2.0Success115,528+23.72 RP
Apr 20, 2026 19:02BenBenCPPclang++18.1.3Success159,132+31.82 RP
Apr 20, 2026 18:45BenBenCPPclang++18.1.3Success322,385+31.02 RP
Apr 20, 2026 18:45BenBenCPPclang++18.1.3Success367,901
Apr 20, 2026 18:45BenBenCPPg++14.2.0Success417,450
Apr 20, 2026 16:52BenBenCPPclang++18.1.3Error
Apr 20, 2026 16:52BenBenCPPg++13.3.0Error
Apr 20, 2026 16:51BenBenCPPclang++18.1.3Error
Apr 20, 2026 16:17Dominique GarmierDominique GarmierCPPg++13.3.0Error
Apr 20, 2026 15:41olliecrowolliecrowRUSTrust-1.94.0Success4,888+82.35 RP
Apr 20, 2026 15:38olliecrowolliecrowGOgo1.26.1Success7,023
Apr 20, 2026 15:36olliecrowolliecrowCPPg++13.3.0Success6,375
Apr 20, 2026 14:14Dominique GarmierDominique GarmierCPPg++13.3.0Error
Apr 20, 2026 12:53Dominique GarmierDominique GarmierCPPclang++18.1.3Success18,546
Apr 20, 2026 12:42Dominique GarmierDominique GarmierCPPclang++18.1.3Success16,658
Apr 19, 2026 09:41Charles CabergsCharles CabergsCPPg++13.3.0Success61,414+15.22 RP
Apr 19, 2026 05:47Charles CabergsCharles CabergsCPPg++13.3.0Success71,122
Apr 19, 2026 05:39Donald LeeDonald LeeRUSTrust-1.95.0Success30,353+312.11 RP
Apr 18, 2026 20:50Charles CabergsCharles CabergsCPPg++13.3.0Success70,283
Apr 18, 2026 16:50Charles CabergsCharles CabergsCPPg++13.3.0Success67,747+41.85 RP
Apr 18, 2026 16:04Donald LeeDonald LeeRUSTrust-1.95.0Success576,417+17.35 RP
Apr 18, 2026 14:37Charles CabergsCharles CabergsCPPg++13.3.0Success94,555+50.44 RP
Apr 18, 2026 01:28Charles CabergsCharles CabergsCPPg++13.3.0Success180,762+34.82 RP
Apr 18, 2026 00:02olliecrowolliecrowGOgo1.26.1Success7,028
Apr 17, 2026 20:53Charles CabergsCharles CabergsCPPg++13.3.0Success487,675+20.51 RP
Apr 17, 2026 20:12olliecrowolliecrowGOgo1.26.1Success7,529
Apr 17, 2026 20:09olliecrowolliecrowGOgo1.26.1Success6,910
Apr 17, 2026 20:06olliecrowolliecrowGOgo1.26.1Error
Apr 17, 2026 19:38Charles CabergsCharles CabergsCPPg++13.3.0Error
Apr 17, 2026 19:11olliecrowolliecrowGOgo1.26.1Success7,651
Apr 17, 2026 18:20olliecrowolliecrowRUSTrust-1.94.0Success5,274
Apr 17, 2026 18:08olliecrowolliecrowGOgo1.26.1Success6,431