fork(9) download
  1. # the target square and the positions of the snakes and ladders:
  2. top = 100
  3. jump = { 1: 38, 4: 14, 9: 31, 16: 6, 21: 42, 28: 84, 36: 44,
  4. 48: 26, 49: 11, 51: 67, 56: 53, 62: 19, 64: 60, 71: 91,
  5. 80:100, 87: 24, 93: 73, 95: 75, 98: 78}
  6.  
  7. # start from square 0 (= outside the board) after 0 rolls
  8. open = {0}
  9. path = {0: ()}
  10.  
  11. while len(open) > 0:
  12. i = open.pop()
  13. p = path[i] + (i,)
  14. for j in xrange(i+1, i+7):
  15. if j > top: break
  16. if j in jump: j = jump[j]
  17. if j not in path or len(path[j]) > len(p):
  18. open.add(j)
  19. path[j] = p
  20.  
  21. for i in path:
  22. print "Square", i, "can be reached in", len(path[i]), "rolls via", path[i]
Success #stdin #stdout 0.01s 7728KB
stdin
Standard input is empty
stdout
Square 0 can be reached in 0 rolls via ()
Square 2 can be reached in 1 rolls via (0,)
Square 3 can be reached in 1 rolls via (0,)
Square 5 can be reached in 1 rolls via (0,)
Square 6 can be reached in 1 rolls via (0,)
Square 7 can be reached in 2 rolls via (0, 2)
Square 8 can be reached in 2 rolls via (0, 2)
Square 10 can be reached in 2 rolls via (0, 5)
Square 11 can be reached in 2 rolls via (0, 5)
Square 12 can be reached in 2 rolls via (0, 6)
Square 13 can be reached in 3 rolls via (0, 2, 7)
Square 14 can be reached in 1 rolls via (0,)
Square 15 can be reached in 2 rolls via (0, 14)
Square 17 can be reached in 2 rolls via (0, 14)
Square 18 can be reached in 2 rolls via (0, 14)
Square 19 can be reached in 2 rolls via (0, 14)
Square 20 can be reached in 2 rolls via (0, 14)
Square 22 can be reached in 3 rolls via (0, 14, 17)
Square 23 can be reached in 3 rolls via (0, 14, 17)
Square 24 can be reached in 3 rolls via (0, 14, 18)
Square 25 can be reached in 3 rolls via (0, 14, 19)
Square 26 can be reached in 3 rolls via (0, 38, 44)
Square 27 can be reached in 4 rolls via (0, 14, 17, 22)
Square 29 can be reached in 4 rolls via (0, 14, 17, 23)
Square 30 can be reached in 4 rolls via (0, 14, 18, 24)
Square 31 can be reached in 2 rolls via (0, 3)
Square 32 can be reached in 3 rolls via (0, 3, 31)
Square 33 can be reached in 3 rolls via (0, 3, 31)
Square 34 can be reached in 3 rolls via (0, 3, 31)
Square 35 can be reached in 3 rolls via (0, 3, 31)
Square 37 can be reached in 3 rolls via (0, 3, 31)
Square 38 can be reached in 1 rolls via (0,)
Square 39 can be reached in 2 rolls via (0, 38)
Square 40 can be reached in 2 rolls via (0, 38)
Square 41 can be reached in 2 rolls via (0, 38)
Square 42 can be reached in 2 rolls via (0, 38)
Square 43 can be reached in 2 rolls via (0, 38)
Square 44 can be reached in 2 rolls via (0, 38)
Square 45 can be reached in 3 rolls via (0, 38, 41)
Square 46 can be reached in 3 rolls via (0, 38, 41)
Square 47 can be reached in 3 rolls via (0, 38, 41)
Square 50 can be reached in 3 rolls via (0, 38, 44)
Square 52 can be reached in 4 rolls via (0, 38, 41, 46)
Square 53 can be reached in 4 rolls via (0, 38, 41, 47)
Square 54 can be reached in 4 rolls via (0, 38, 44, 50)
Square 55 can be reached in 4 rolls via (0, 38, 44, 50)
Square 57 can be reached in 5 rolls via (0, 38, 41, 46, 52)
Square 58 can be reached in 5 rolls via (0, 38, 41, 46, 52)
Square 59 can be reached in 5 rolls via (0, 38, 41, 47, 53)
Square 60 can be reached in 5 rolls via (0, 38, 44, 50, 54)
Square 61 can be reached in 5 rolls via (0, 38, 44, 50, 55)
Square 63 can be reached in 6 rolls via (0, 38, 41, 46, 52, 57)
Square 65 can be reached in 6 rolls via (0, 38, 41, 47, 53, 59)
Square 66 can be reached in 6 rolls via (0, 38, 44, 50, 54, 60)
Square 67 can be reached in 4 rolls via (0, 38, 41, 45)
Square 68 can be reached in 5 rolls via (0, 38, 41, 45, 67)
Square 69 can be reached in 5 rolls via (0, 38, 41, 45, 67)
Square 70 can be reached in 5 rolls via (0, 38, 41, 45, 67)
Square 72 can be reached in 5 rolls via (0, 38, 41, 45, 67)
Square 73 can be reached in 5 rolls via (0, 38, 41, 45, 67)
Square 74 can be reached in 6 rolls via (0, 38, 41, 45, 67, 68)
Square 75 can be reached in 6 rolls via (0, 38, 41, 45, 67, 69)
Square 76 can be reached in 6 rolls via (0, 38, 41, 45, 67, 70)
Square 77 can be reached in 6 rolls via (0, 38, 41, 45, 67, 72)
Square 78 can be reached in 6 rolls via (0, 38, 41, 45, 67, 72)
Square 79 can be reached in 6 rolls via (0, 38, 41, 45, 67, 73)
Square 81 can be reached in 7 rolls via (0, 38, 41, 45, 67, 69, 75)
Square 82 can be reached in 7 rolls via (0, 38, 41, 45, 67, 70, 76)
Square 83 can be reached in 7 rolls via (0, 38, 41, 45, 67, 72, 77)
Square 84 can be reached in 4 rolls via (0, 14, 17, 22)
Square 85 can be reached in 5 rolls via (0, 14, 17, 22, 84)
Square 86 can be reached in 5 rolls via (0, 14, 17, 22, 84)
Square 88 can be reached in 5 rolls via (0, 14, 17, 22, 84)
Square 89 can be reached in 5 rolls via (0, 14, 17, 22, 84)
Square 90 can be reached in 5 rolls via (0, 14, 17, 22, 84)
Square 91 can be reached in 5 rolls via (0, 38, 41, 45, 67)
Square 92 can be reached in 6 rolls via (0, 14, 17, 22, 84, 86)
Square 94 can be reached in 6 rolls via (0, 14, 17, 22, 84, 88)
Square 96 can be reached in 6 rolls via (0, 14, 17, 22, 84, 90)
Square 97 can be reached in 6 rolls via (0, 38, 41, 45, 67, 91)
Square 99 can be reached in 7 rolls via (0, 14, 17, 22, 84, 88, 94)
Square 100 can be reached in 7 rolls via (0, 38, 41, 45, 67, 68, 74)