皆様どうも、ばるとーくです!
今回はこちらの問題「Edge of triangle」を解説していこうと思います!
問題
問題文
ばる君は長さがそれぞれ $A$ mm, $B$ mm, $C$ mm の $3$ 本の棒を持っている。
これからこの棒を使って三角形を作りたい。$3$ つの正の整数 $A$, $B$, $C$ が与えられるので、これらを $3$ 辺の長さとする三角形が存在するかどうかを判定せよ。
制約
- $1 \le A, B, C \le 3000$
- 入力はすべて整数

ProblemId = 13417 - yukicoder
競技プログラミングの練習サイト
解説
この問題のカギは「三角形の成立条件」です。
三角形の成立条件は以下のようなものとなっています。
「三角形の3辺A, B, Cすべての辺について、その1辺の長さが他の2辺の長さの和未満である」
厳密には、数式を使って以下のように表せます。
$\ A < B + C $ かつ $\ B < C + A $ かつ $\ C < A + B $
これを判定する方法の1つとして、if文と論理演算子を使う方法が(個人的には)テンプレだと思っています。
C++だと以下のように表せます。
if(A < B + C && B < C + A && C < A + B)
"&&"が論理積、すなわち、「かつ」を表す演算子になっているので覚えておきましょう。
注意点として、成立条件は「ある1辺の長さが他の2辺の長さの和 未満 である」ことに注意が必要です。
つまり、$\ A = B + C$ のような場合は三角形とならないので注意です。
※実際に書いてみるとただの直線となることがわかると思います。
想定解はyukicoderのコードをご覧ください。
Python使いの方で「想定解に使ってもいいよ」って方はご連絡ください…
5/27追記:testerのp-adic様がPythonの模範解答コードを書いてくださいました!
本当にありがとうございます...!

