blob: e494f1613c199d6a334db3c1e2cecf6b8ec238d1 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
|
#!/usr/bin/env ruby
input = gets.chomp.split(',')
startline = %w( a b c d e f g h i j k l m n o p )
line = startline.dup
i = 0
def dodance(line, dance)
dance.each do |istr|
case istr[0]
when 's'
n = istr[1..-1].to_i
line = line[-n..-1] + line[0..-n-1]
when 'x'
ns = istr[1..-1].split('/').map(&:to_i)
t = line[ns[0]]
line[ns[0]] = line[ns[1]]
line[ns[1]] = t
when 'p'
ps = istr[1..-1].split('/')
i0 = line.index(ps[0])
i1 = line.index(ps[1])
line[i0] = ps[1]
line[i1] = ps[0]
end
end
line
end
loop do
line = dodance(line, input)
i += 1
break if line == startline
end
(1_000_000_000 % i).times do
line = dodance(line, input)
end
puts line.join
|