20 lines
562 B
Ruby
20 lines
562 B
Ruby
initial_string = [*0..255]
|
|
# initial_string = [*0..4]
|
|
shifts = File.open('puzzle_10.txt').read.split(',').map(&:to_i)
|
|
# shifts = [3, 4, 1, 5]
|
|
skip_size = 0
|
|
offset = 0
|
|
for shift in shifts do
|
|
initial_string.rotate! offset
|
|
if shift > 0 then
|
|
rotated_bit = initial_string[0..shift - 1]
|
|
kept_bit = initial_string[shift..initial_string.length-1]
|
|
initial_string = rotated_bit.reverse + kept_bit
|
|
end
|
|
initial_string.rotate! -offset
|
|
offset += shift + skip_size
|
|
skip_size += 1
|
|
end
|
|
print initial_string[0] * initial_string[1]
|
|
|