Data commit
This commit is contained in:
parent
7387c8f97b
commit
cb5bb5e222
199093 changed files with 3378972 additions and 0 deletions
50
Task/Topswops/Wren/topswops.wren
Normal file
50
Task/Topswops/Wren/topswops.wren
Normal file
|
|
@ -0,0 +1,50 @@
|
|||
import "/fmt" for Fmt
|
||||
|
||||
var maxn = 10
|
||||
var maxl = 50
|
||||
|
||||
var steps = Fn.new { |n|
|
||||
var a = List.filled(maxl, null)
|
||||
var b = List.filled(maxl, null)
|
||||
var x = List.filled(maxl, 0)
|
||||
for (i in 0...maxl) {
|
||||
a[i] = List.filled(maxn + 1, 0)
|
||||
b[i] = List.filled(maxn + 1, 0)
|
||||
}
|
||||
a[0][0] = 1
|
||||
var m = 0
|
||||
var l = 0
|
||||
while (true) {
|
||||
x[l] = x[l] + 1
|
||||
var k = x[l]
|
||||
var cont = false
|
||||
if (k >= n) {
|
||||
if (l <= 0) break
|
||||
l = l - 1
|
||||
cont = true
|
||||
} else if (a[l][k] == 0) {
|
||||
if (b[l][k+1] != 0) cont = true
|
||||
} else if (a[l][k] != k + 1) {
|
||||
cont = true
|
||||
}
|
||||
if (!cont) {
|
||||
a[l+1] = a[l].toList
|
||||
var j = 1
|
||||
while (j <= k) {
|
||||
a[l+1][j] = a[l][k-j]
|
||||
j = j + 1
|
||||
}
|
||||
b[l+1] = b[l].toList
|
||||
a[l+1][0] = k + 1
|
||||
b[l+1][k+1] = 1
|
||||
if (l > m - 1) {
|
||||
m = l + 1
|
||||
}
|
||||
l = l + 1
|
||||
x[l] = 0
|
||||
}
|
||||
}
|
||||
return m
|
||||
}
|
||||
|
||||
for (i in 1..maxn) Fmt.print("$2d: $d", i, steps.call(i))
|
||||
Loading…
Add table
Add a link
Reference in a new issue