配列の引き算

いろいろしたいことを試していたら、結果、
配列の引き算になってしまいました。
インデックスソートを行った後、そのリストから削除するインデックス、のリストを受け取って、整列を維持したまま削除する
ということがしたかったです。
いい方法がありますでしょうか?

いろいろしたいことを試していたら、結果、
配列の引き算になってしまいました。
インデックスソートを行った後、そのリストから削除するインデックス、のリストを受け取って、整列を維持したまま削除する
ということがしたかったです。
いい方法がありますでしょうか?

#module
//{ 配列a - 配列b : return 引いた後の配列aのサイズ } ( aもbも破壊します)
#defcfunc 配列引き算 array a, array b, int sizeA, int sizeB
	lpoke ln
	bn = sizeB
	repeat sizeA
		i = cnt
		repeat bn
			if a(i) = b(cnt){
				list(ln) = i: ln+
				bn-: b(cnt) = b(bn)
				break
			}
		loop
	loop
	list(ln) = sizeA - 1
	
	repeat ln
		saki = list(cnt) - cnt
		moto = saki + cnt + 1
		memcpy a, a, list(cnt + 1) - moto + 1 << 2, saki << 2, moto << 2
	loop
	
	return sizeA - ln
#global

randomize

//引かれる配列
repeat 10
	a.cnt = rnd(10)
	mes a.cnt
loop

//引く配列
pos 30, 0
repeat 10
	b.cnt = rnd(10)
	mes b.cnt
loop

//結果配列
pos 60,0
repeat 配列引き算(a, b, length(a), length(b))
	mes a.cnt
loop