You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
28 lines
452 B
28 lines
452 B
7 years ago
|
banks = ARGF.read.strip.split("\t").map(&:to_i)
|
||
|
|
||
|
history = { banks => true}
|
||
|
count = 0
|
||
|
seen = false
|
||
|
loop do
|
||
|
v, i = banks.map.with_index {|v,i| [v,i] }.max_by(&:first)
|
||
|
banks[i] = 0
|
||
|
i += 1
|
||
|
while v > 0
|
||
|
banks[i % banks.size] += 1
|
||
|
v -= 1
|
||
|
i += 1
|
||
|
end
|
||
|
count += 1
|
||
|
if history.has_key?(banks)
|
||
|
if seen
|
||
|
puts count
|
||
|
exit
|
||
|
else
|
||
|
history.clear
|
||
|
seen = true
|
||
|
count = 0
|
||
|
end
|
||
|
end
|
||
|
history[banks] = true
|
||
|
end
|