764LSHBVPXFOCPCCX5AHDUYUOOJRE5RUVDHCFREZ7KAOASJ6AJFQC def redist banksfullest, index1 = banks.each_with_index.max{|a,b| a[0] <=> b[0] }inc1 = fullest / banks.lengthinc2 = inc1 + 1ex = fullest % banks.length - 1banks.each_with_index.map do |s,index|inc = if (index - index1 - 1) % banks.length <= exinc2elseinc1endc = if index == index10elsesendinc + cendenddef the_cycle banksEnumerator.new do |y|cache = {}while truecache[banks] ||= 0case cache[banks]when 1y.yield bankswhen 2breakendcache[banks] += 1banks = redist banksendendendinitial_state = Enumerator.new do |y|File.open(ARGV[0],"r") do |src|src.each_line do |line|line.split(/\s/).each do |word|num = word.to_iy.yield num if numendendendend.to_aputs the_cycle(initial_state).count