#!/usr/bin/env ruby def add(*x) x.sum end def mod(x,m) x.modulo(m) end P=5 B=7 T={} for p in 0...P for b in 0...B T[[p,b]]=mod(add(73,29*p,31*b,17*p*b,11*p*p,13*b*b),997) end end C={} C[[0,2]]=0 C[[0,5]]=1 C[[1,1]]=2 C[[1,6]]=3 C[[2,3]]=4 C[[3,4]]=5 C[[4,2]]=6 def j(a,b) return b if a==0 return a if b==0 return a if a==b return 3 end def jv(x,y) return (0...4).map{ j(x[_1],y[_1]) } end def cd(x) return add(x[0],4*x[1],16*x[2],64*x[3]) end def g(ctx) return 0 if ctx.length==0 return add(1,ctx[0]) if ctx.length==1 return add(8,7*ctx[0],ctx[1]) end E=Hash.new{ Array.new(4,0) } S=Hash.new{ Array.new(4,0) } E[[0,[]]]=[1,1,1,1] Z=0 H=0 for r in 1..5 sn=E.keys.select{ E[_1] != [0,0,0,0] }.sort_by{ [g(_1[1]),_1[0]] } puts "sweep