Skip to content

Instantly share code, notes, and snippets.

@vznvzn
Created November 24, 2018 16:21
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save vznvzn/526a0b9f26a17eb636e7ad800983115c to your computer and use it in GitHub Desktop.
Save vznvzn/526a0b9f26a17eb636e7ad800983115c to your computer and use it in GitHub Desktop.
c = ARGV[0].to_i
l = []
l << ['a', 'a2', 1]
l << ['a2', 'b', 2]
l << ['a2', 'd_1', 2]
l << ['b', 'b2', 1]
l << ['b2', 'b', 1]
l << ['b2', 'b', 2]
l << ['b', 'c_0', 0]
l << ['b', 'd_0', 0]
c.times \
{
|x|
l << ["c_#{x}", "c2_#{x}", 1]
l << ["c2_#{x}", "c_#{x + 1}", 1]
}
l << ["c_#{c}", "e", 0]
c.times \
{
|x|
l << ["d_#{x}", "d2_#{x}", 1]
l << ["d2_#{x}", "d_#{x + 1}", 2]
}
l << ["d_#{c}", 'e', 0]
l << ["d_#{c}", 'g', 0]
l << ['e', 'e2', 1]
l << ['e2', 'e', 1]
l << ['e2', 'e', 2]
l << ['e', 'f', 0]
l << ['f', 'f2', 1]
l << ['f2', 'g', 2]
l << ['g', 'g1', '2']
l << ['g1']
a = {}
n = -1
l.each \
{
|l1|
# $stderr.puts(l1.inspect)
l1[0..1].each { |s| s.replace(a[s] = a.fetch(s, n += 1).to_s) }
puts(l1.join(' '))
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment