131 lines
3.3 KiB
Go
131 lines
3.3 KiB
Go
package main
|
|
|
|
import (
|
|
"fmt"
|
|
)
|
|
|
|
func step(w int, z int, a int, b int, pop bool) int {
|
|
temp := z
|
|
|
|
if pop {
|
|
// Pop value from stack
|
|
z /= 26
|
|
}
|
|
|
|
if (temp%26)+a != w {
|
|
// Push new value to stack
|
|
z *= 26
|
|
z += w + b
|
|
}
|
|
|
|
return z
|
|
}
|
|
|
|
func main() {
|
|
// for w1 := 1; w1 <= 9; w1++ {
|
|
// z1 := step(w1, 0, 14, 1, false)
|
|
// for w2 := 1; w2 <= 9; w2++ {
|
|
// z2 := step(w2, z1, 15, 7, false)
|
|
// for w3 := 1; w3 <= 9; w3++ {
|
|
// z3 := step(w3, z2, 15, 13, false)
|
|
// for w4 := 1; w4 <= 9; w4++ {
|
|
// z4 := step(w4, z3, -6, 10, true)
|
|
// for w5 := 1; w5 <= 9; w5++ {
|
|
// fmt.Println(w1, w2, w3, w4, w5)
|
|
// z5 := step(w5, z4, 14, 0, false)
|
|
// for w6 := 1; w6 <= 9; w6++ {
|
|
// z6 := step(w6, z5, -4, 13, true)
|
|
// for w7 := 1; w7 <= 9; w7++ {
|
|
// z7 := step(w7, z6, 15, 11, false)
|
|
// for w8 := 1; w8 <= 9; w8++ {
|
|
// z8 := step(w8, z7, 15, 6, false)
|
|
// for w9 := 1; w9 <= 9; w9++ {
|
|
// z9 := step(w9, z8, 11, 1, false)
|
|
// for w10 := 1; w10 <= 9; w10++ {
|
|
// z10 := step(w10, z9, 0, 7, true)
|
|
// for w11 := 1; w11 <= 9; w11++ {
|
|
// z11 := step(w11, z10, 0, 11, true)
|
|
// for w12 := 1; w12 <= 9; w12++ {
|
|
// z12 := step(w12, z11, -3, 14, true)
|
|
// for w13 := 1; w13 <= 9; w13++ {
|
|
// z13 := step(w13, z12, -9, 4, true)
|
|
|
|
// w14 := z13 - 9
|
|
// if w14 <= 0 || w14 > 9 {
|
|
// continue
|
|
// }
|
|
|
|
// z14 := step(w14, z13, -9, 10, true)
|
|
|
|
// if z14 == 0 {
|
|
// fmt.Println("SOLUTION FOUND:", w1, w2, w3, w4, w5, w6, w7, w8, w9, w10, w11, w12, w13, w14)
|
|
// return
|
|
// }
|
|
// }
|
|
// }
|
|
// }
|
|
// }
|
|
// }
|
|
// }
|
|
// }
|
|
// }
|
|
// }
|
|
// }
|
|
// }
|
|
// }
|
|
// }
|
|
|
|
for w1 := 1; w1 <= 9; w1++ {
|
|
z1 := step(w1, 0, 14, 1, false)
|
|
for w2 := 1; w2 <= 9; w2++ {
|
|
z2 := step(w2, z1, 15, 7, false)
|
|
for w3 := 1; w3 <= 9; w3++ {
|
|
z3 := step(w3, z2, 15, 13, false)
|
|
for w4 := 1; w4 <= 9; w4++ {
|
|
z4 := step(w4, z3, -6, 10, true)
|
|
for w5 := 1; w5 <= 9; w5++ {
|
|
fmt.Println(w1, w2, w3, w4, w5)
|
|
z5 := step(w5, z4, 14, 0, false)
|
|
for w6 := 1; w6 <= 9; w6++ {
|
|
z6 := step(w6, z5, -4, 13, true)
|
|
for w7 := 1; w7 <= 9; w7++ {
|
|
z7 := step(w7, z6, 15, 11, false)
|
|
for w8 := 1; w8 <= 9; w8++ {
|
|
z8 := step(w8, z7, 15, 6, false)
|
|
for w9 := 1; w9 <= 9; w9++ {
|
|
z9 := step(w9, z8, 11, 1, false)
|
|
for w10 := 1; w10 <= 9; w10++ {
|
|
z10 := step(w10, z9, 0, 7, true)
|
|
for w11 := 1; w11 <= 9; w11++ {
|
|
z11 := step(w11, z10, 0, 11, true)
|
|
for w12 := 1; w12 <= 9; w12++ {
|
|
z12 := step(w12, z11, -3, 14, true)
|
|
for w13 := 1; w13 <= 9; w13++ {
|
|
z13 := step(w13, z12, -9, 4, true)
|
|
|
|
w14 := z13 - 9
|
|
if w14 <= 0 || w14 > 9 {
|
|
continue
|
|
}
|
|
|
|
z14 := step(w14, z13, -9, 10, true)
|
|
|
|
if z14 == 0 {
|
|
fmt.Println("SOLUTION FOUND:", w1, w2, w3, w4, w5, w6, w7, w8, w9, w10, w11, w12, w13, w14)
|
|
return
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|