first commit
This commit is contained in:
32
p24/solution.jl
Normal file
32
p24/solution.jl
Normal file
@@ -0,0 +1,32 @@
|
||||
|
||||
function solution(V, p)
|
||||
l = length(V)
|
||||
n = factorial(l)
|
||||
if p > n
|
||||
print("p too large")
|
||||
return
|
||||
end
|
||||
sort!(V)
|
||||
|
||||
m = n
|
||||
r = p
|
||||
vals = zeros(Int, l-1)
|
||||
for i ∈ 0:(l-2)
|
||||
m = div(m, l-i)
|
||||
vals[i+1] = cld(r, m)
|
||||
r = mod(r-1, m)+1
|
||||
end
|
||||
sol = zeros(Int, l)
|
||||
V = copy(V)
|
||||
for i ∈ 1:(l-1)
|
||||
sol[i] = popat!(V, vals[i])
|
||||
end
|
||||
sol[l] = pop!(V)
|
||||
return sol
|
||||
end
|
||||
|
||||
function printsols(V)
|
||||
for i ∈ 1:factorial(length(V))
|
||||
println(solution(V, i))
|
||||
end
|
||||
end
|
||||
Reference in New Issue
Block a user