Codeforces Round #159 (Div. 2)

http://www.codeforces.com/contest/257

またもA, B問題だけ。

A. Sockets

英文を読み解くのに時間がかかった・・・。

def solve(n, m, k, a)
  return 0 if k >= m

  a.sort_by! {|x| -x}
  
  socket = k - 1
  for i in 0 .. (n - 1)
    return i + 1 if (a[i] + socket) >= m
    
    socket += a[i] - 1    
  end
  
  return -1
  
end

n, m, k = gets.chomp.split(" ").map{|n| n.to_i}
a = gets.chomp.split(" ").map{|n| n.to_i}

puts solve(n, m, k, a)

B. Playing Cubes

これは簡単。

n, m = gets.chomp.split(" ").map{|n| n.to_i}
max = [n, m].max
min = [n, m].min

petya = max - 1
vasya = min

puts [petya, vasya].join(" ")