Solve hanging lantern problem: Difference between revisions

Content added Content deleted
(→‎{{header|Raku}}: Make verbose mode more verbose.)
Line 54: Line 54:
inputs = [parse(Int, i) for i in split(readline(), r"\s+")]
inputs = [parse(Int, i) for i in split(readline(), r"\s+")]
n = popfirst!(inputs)
n = popfirst!(inputs)
takedownways = unique(permutations(reduce(vcat, [fill(i,inputs[i]) for i in 1:length(inputs)])))
counts = [count(==(j), inputs) for j in inputs]
takedownways = unique(permutations(reduce(vcat, [fill(counts[i] > 1 ? counts[i]^m + i : m, m)
for (i, m) in enumerate(inputs)])))
println("\nThere are ", length(takedownways), " ways to take these ", n, " columns down:")
println("\nThere are ", length(takedownways), " ways to take these ", n, " columns down:")
for way in takedownways
for way in takedownways
Line 125: Line 127:
[3, 3, 3, 2, 1, 2]
[3, 3, 3, 2, 1, 2]
[3, 3, 3, 2, 2, 1]
[3, 3, 3, 2, 2, 1]


Input number of columns, then column heights in sequence:
3 1 3 3

There are 140 ways to take these 3 columns down:
[1, 10, 10, 10, 11, 11, 11]
[1, 10, 10, 11, 10, 11, 11]
[1, 10, 10, 11, 11, 10, 11]
[1, 10, 10, 11, 11, 11, 10]
[1, 10, 11, 10, 10, 11, 11]
[1, 10, 11, 10, 11, 10, 11]
[1, 10, 11, 10, 11, 11, 10]
[1, 10, 11, 11, 10, 10, 11]
[1, 10, 11, 11, 10, 11, 10]
[1, 10, 11, 11, 11, 10, 10]
[1, 11, 10, 10, 10, 11, 11]
[1, 11, 10, 10, 11, 10, 11]
[1, 11, 10, 10, 11, 11, 10]
[1, 11, 10, 11, 10, 10, 11]
[1, 11, 10, 11, 10, 11, 10]
[1, 11, 10, 11, 11, 10, 10]
[1, 11, 11, 10, 10, 10, 11]
[1, 11, 11, 10, 10, 11, 10]
[1, 11, 11, 10, 11, 10, 10]
[1, 11, 11, 11, 10, 10, 10]
[10, 1, 10, 10, 11, 11, 11]
[10, 1, 10, 11, 10, 11, 11]
[10, 1, 10, 11, 11, 10, 11]
[10, 1, 10, 11, 11, 11, 10]
[10, 1, 11, 10, 10, 11, 11]
[10, 1, 11, 10, 11, 10, 11]
[10, 1, 11, 10, 11, 11, 10]
[10, 1, 11, 11, 10, 10, 11]
[10, 1, 11, 11, 10, 11, 10]
[10, 1, 11, 11, 11, 10, 10]
[10, 10, 1, 10, 11, 11, 11]
[10, 10, 1, 11, 10, 11, 11]
[10, 10, 1, 11, 11, 10, 11]
[10, 10, 1, 11, 11, 11, 10]
[10, 10, 10, 1, 11, 11, 11]
[10, 10, 10, 11, 1, 11, 11]
[10, 10, 10, 11, 11, 1, 11]
[10, 10, 10, 11, 11, 11, 1]
[10, 10, 11, 1, 10, 11, 11]
[10, 10, 11, 1, 11, 10, 11]
[10, 10, 11, 1, 11, 11, 10]
[10, 10, 11, 10, 1, 11, 11]
[10, 10, 11, 10, 11, 1, 11]
[10, 10, 11, 10, 11, 11, 1]
[10, 10, 11, 11, 1, 10, 11]
[10, 10, 11, 11, 1, 11, 10]
[10, 10, 11, 11, 10, 1, 11]
[10, 10, 11, 11, 10, 11, 1]
[10, 10, 11, 11, 11, 1, 10]
[10, 10, 11, 11, 11, 10, 1]
[10, 11, 1, 10, 10, 11, 11]
[10, 11, 1, 10, 11, 10, 11]
[10, 11, 1, 10, 11, 11, 10]
[10, 11, 1, 11, 10, 10, 11]
[10, 11, 1, 11, 10, 11, 10]
[10, 11, 1, 11, 11, 10, 10]
[10, 11, 10, 1, 10, 11, 11]
[10, 11, 10, 1, 11, 10, 11]
[10, 11, 10, 1, 11, 11, 10]
[10, 11, 10, 10, 1, 11, 11]
[10, 11, 10, 10, 11, 1, 11]
[10, 11, 10, 10, 11, 11, 1]
[10, 11, 10, 11, 1, 10, 11]
[10, 11, 10, 11, 1, 11, 10]
[10, 11, 10, 11, 10, 1, 11]
[10, 11, 10, 11, 10, 11, 1]
[10, 11, 10, 11, 11, 1, 10]
[10, 11, 10, 11, 11, 10, 1]
[10, 11, 11, 1, 10, 10, 11]
[10, 11, 11, 1, 10, 11, 10]
[10, 11, 11, 1, 11, 10, 10]
[10, 11, 11, 10, 1, 10, 11]
[10, 11, 11, 10, 1, 11, 10]
[10, 11, 11, 10, 10, 1, 11]
[10, 11, 11, 10, 10, 11, 1]
[10, 11, 11, 10, 11, 1, 10]
[10, 11, 11, 10, 11, 10, 1]
[10, 11, 11, 11, 1, 10, 10]
[10, 11, 11, 11, 10, 1, 10]
[10, 11, 11, 11, 10, 10, 1]
[11, 1, 10, 10, 10, 11, 11]
[11, 1, 10, 10, 11, 10, 11]
[11, 1, 10, 10, 11, 11, 10]
[11, 1, 10, 11, 10, 10, 11]
[11, 1, 10, 11, 10, 11, 10]
[11, 1, 10, 11, 11, 10, 10]
[11, 1, 11, 10, 10, 10, 11]
[11, 1, 11, 10, 10, 11, 10]
[11, 1, 11, 10, 11, 10, 10]
[11, 1, 11, 11, 10, 10, 10]
[11, 10, 1, 10, 10, 11, 11]
[11, 10, 1, 10, 11, 10, 11]
[11, 10, 1, 10, 11, 11, 10]
[11, 10, 1, 11, 10, 10, 11]
[11, 10, 1, 11, 10, 11, 10]
[11, 10, 1, 11, 11, 10, 10]
[11, 10, 10, 1, 10, 11, 11]
[11, 10, 10, 1, 11, 10, 11]
[11, 10, 10, 1, 11, 11, 10]
[11, 10, 10, 10, 1, 11, 11]
[11, 10, 10, 10, 11, 1, 11]
[11, 10, 10, 10, 11, 11, 1]
[11, 10, 10, 11, 1, 10, 11]
[11, 10, 10, 11, 1, 11, 10]
[11, 10, 10, 11, 10, 1, 11]
[11, 10, 10, 11, 10, 11, 1]
[11, 10, 10, 11, 11, 1, 10]
[11, 10, 10, 11, 11, 10, 1]
[11, 10, 11, 1, 10, 10, 11]
[11, 10, 11, 1, 10, 11, 10]
[11, 10, 11, 1, 11, 10, 10]
[11, 10, 11, 10, 1, 10, 11]
[11, 10, 11, 10, 1, 11, 10]
[11, 10, 11, 10, 10, 1, 11]
[11, 10, 11, 10, 10, 11, 1]
[11, 10, 11, 10, 11, 1, 10]
[11, 10, 11, 10, 11, 10, 1]
[11, 10, 11, 11, 1, 10, 10]
[11, 10, 11, 11, 10, 1, 10]
[11, 10, 11, 11, 10, 10, 1]
[11, 11, 1, 10, 10, 10, 11]
[11, 11, 1, 10, 10, 11, 10]
[11, 11, 1, 10, 11, 10, 10]
[11, 11, 1, 11, 10, 10, 10]
[11, 11, 10, 1, 10, 10, 11]
[11, 11, 10, 1, 10, 11, 10]
[11, 11, 10, 1, 11, 10, 10]
[11, 11, 10, 10, 1, 10, 11]
[11, 11, 10, 10, 1, 11, 10]
[11, 11, 10, 10, 10, 1, 11]
[11, 11, 10, 10, 10, 11, 1]
[11, 11, 10, 10, 11, 1, 10]
[11, 11, 10, 10, 11, 10, 1]
[11, 11, 10, 11, 1, 10, 10]
[11, 11, 10, 11, 10, 1, 10]
[11, 11, 10, 11, 10, 10, 1]
[11, 11, 11, 1, 10, 10, 10]
[11, 11, 11, 10, 1, 10, 10]
[11, 11, 11, 10, 10, 1, 10]
[11, 11, 11, 10, 10, 10, 1]
</pre>
</pre>