--> function linked_list(sequence prisoners, integer step, survivors) integer n = length(prisoners) sequence links = tagset(n,2)&1 integer p = n, prvp while n>survivors do for i=1 to step do prvp = p p = links[p] end for prisoners[p] = -1 links[prvp] = links[p] n -= 1 end while return remove_all(-1,prisoners) end function