配列の引き算

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

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

#module
//{ a - b : return a } ( ab)
#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
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX