Problem:
List of Top 3 Hills

There is a data which provides heights (in meter) of mountains. The data is only for ten mountains.

Write a program which prints heights of the top three mountains in descending order.

Input

Height of mountain 1
Height of mountain 2
Height of mountain 3
.
.
Height of mountain 10

Constraints

0 ≤ height of mountain (integer) ≤ 10,000

Output

Height of the 1st mountain
Height of the 2nd mountain
Height of the 3rd mountain

Sample Input 1

1819
2003
876
2840
1723
1673
3776
2848
1592
922

Output for the Sample Input 1

3776
2848
2840

Sample Input 2

100
200
300
400
500
600
700
800
900
900

Output for the Sample Input 2

900
900
800

Solution in Ruby (judge verdict: Wrong Answer)

out = []

def out.higher?(v)
  return true if self.size < 3
  self.each do |h|
    return true if v > h
  end
  return false
end

def out.push(v)
  if self.size < 3
    self << v
    return
  end
  min = 10000
  min_i = 3
  self.each_with_index do |h, i|
    min, min_i = h, i if min > h
  end
  self[min_i] = v
end

def out.puts_desc
  order = []
  3.times do
    max = 0
    max_i = 3
    self.each_with_index do |h, i|
      max, max_i = h, i if max < h
    end
    order << max
    self.delete_at(max_i)
  end
  order.each do |v|
    puts v
  end
end

10.times do |count|
  if out.higher? $*[count].to_i
    out.push $*[count].to_i
  end
end

out.puts_desc