パナソニックプログラミングコンテスト2020
https://atcoder.jp/contests/panasonic2020
過去問。
A:Kth Term
ary = [1, 1, 1, 2, 1, 2, 1, 5, 2, 2, 1, 5, 1, 2, 1, 14, 1, 5, 1, 5, 2, 2, 1, 15, 2, 2, 5, 4, 1, 4, 1, 51] puts ary[gets.to_i - 1]
B:Bishop
HかWが 1 の場合を忘れていた。
h, w = gets.split.map(&:to_i) puts (h == 1) || (w == 1) ? 1 : (w * h * 1/2r).ceil
C:Sqrt Inequality
必要十分条件をちょっと勘違いしていた。
a, b, c = gets.split.map(&:to_i) result = if c - a - b <= 0 "No" else (4 * a * b < (c - a - b) ** 2) ? "Yes" : "No" end puts result
D:String Equivalence
よくわからなかった。解説を見た。
n = gets.to_i solve = ->(str, max_char) { if str.length == n puts str else ("a"..max_char).each do |c| next_max = (c == max_char) ? max_char.succ : max_char solve.(str + c, next_max) end end } solve.("", "a")