ABC180

https://atcoder.jp/contests/abc180
 

A: box

n, a, b = gets.split.map(&:to_i)
puts n - a + b

 

B: Various distances

gets
xs = gets.split.map(&:to_i)

puts xs.map {_1.abs}.sum
puts Math.sqrt(xs.map {_1 * _1}.sum)
puts xs.map {_1.abs}.max

 

C: Cream puff

require "prime"

n = gets.to_i

table = n.prime_division.map {|a, b| (b + 1).times.map {|i| a ** i} }
table = [[1]] if table.empty?
puts table[0].product(*table[1..-1]).map {|ary| ary.inject(:*)}.uniq.sort

 

D: Takahashi Unevolved

x, y, a, b = gets.split.map(&:to_i)

ex = 0

loop do
  if (tmp = x * a) > x + b
    ex += (y - 1 - x) / b
    break
  else
    x = tmp
  end
  break if x >= y
  ex += 1
end

puts ex