29 lines
538 B
R
29 lines
538 B
R
queens <- function(n) {
|
|
a <- seq(n)
|
|
u <- rep(T, 2 * n - 1)
|
|
v <- rep(T, 2 * n - 1)
|
|
m <- NULL
|
|
aux <- function(i) {
|
|
if (i > n) {
|
|
m <<- cbind(m, a)
|
|
} else {
|
|
for (j in seq(i, n)) {
|
|
k <- a[[j]]
|
|
p <- i - k + n
|
|
q <- i + k - 1
|
|
if (u[[p]] && v[[q]]) {
|
|
u[[p]] <<- v[[q]] <<- F
|
|
a[[j]] <<- a[[i]]
|
|
a[[i]] <<- k
|
|
aux(i + 1)
|
|
u[[p]] <<- v[[q]] <<- T
|
|
a[[i]] <<- a[[j]]
|
|
a[[j]] <<- k
|
|
}
|
|
}
|
|
}
|
|
}
|
|
aux(1)
|
|
m
|
|
}
|