1#!/usr/bin/env ruby
 2
 3def assert_equal(x, y)
 4  raise "expected: #{x.inspect}, actual: #{y.inspect}" unless x == y
 5end
 6
 7def reconstruct(input)
 8  sorted = input.sort_by do |item|
 9    [-item[0], item[1]]
10  end
11  result = []
12  sorted.each do |item|
13    result.insert(item[1], item)
14  end
15  result
16end
17
18input = [[7,0], [4,4], [7,1], [5,0], [6,1], [5,2]]
19output = [[5, 0], [7, 0], [5, 2], [6, 1], [4, 4], [7, 1]]
20assert_equal(output, reconstruct(input))