競技プログラミング day9
# ---------------------------------------------------------- # ■ 問題 # https://atcoder.jp/contests/abc117/tasks/abc117_b # ■ 前提条件 # 一番長い辺が他の N − 1 辺の長さの合計よりも真に短い場合に限り、条件を満たす N角形が描ける。 # ■ 制約 # 3 <= N <= 10 # 1 <= Li <= 100 # ■ 流れ説明 # 1. N角形の入力値を受付(Nの値) # 2. N回分、辺の長さをへんの長さを受付 # 3. 最長の辺の長さを算出 # 4. 最長の辺の長さが他の辺の長さの合計値より大きいかを確認 # 5. 4の結果がtrueの場合は"NO", flaseの場合は"true"をputs # ■入力例 # 4 # 3 8 4 1 # ■ 出力例 # 8 ≥ 8 = 3 + 4 + 1なのでNOをputs # ■ 工夫箇所 # ---------------------------------------------------------- # 1. N角形の入力値を受付(Nの値) N = gets.chomp.to_i # 2. N回分、辺の長さをへんの長さを受付 one_sides = gets.split.map(&:to_i) # 3. 最長の辺の長さを算出 max_one_side = one_sides.max one_sides.delete(max_one_side) # 4. 最長の辺の長さが他の辺の長さの合計値より大きいかを確認 # 5. 4の結果がtrueの場合は"NO", flaseの場合は"true"をputs puts max_one_side >= one_sides.inject(:+)? "No" : "Yes"