program Nqueens (f[]); begin n = 8; some k; k = 0; do n times begin k >> k0 = k0 + 1; find r in [1 .. n] with begin r = f[k]; donot find i in [1 .. k-1] with either f[i] = r orelse either f[i] = r + (k - i) orelse f[i] = r - (k - i) end end end