競技プログラミング用 知識集積所
ABC456A - Dice
最終更新:
sport_programming
-
view
問題
必要知識
考え方
さて、A問題にしては珍しく、書かれていることをそのまま実行することが難しいので、考察問題として問題の言い換えをする必要がある。
サイコロの目として最も小さいのは、(1,1,1)が出たときの、3。
サイコロの目として最も大きいのは、(6,6,6)が出たときの、18。
3から8までは、(1,1,残り)で実現可能。
8から13までは、(1,残り,6)で実現可能。
13から18までは、(残り,6,6)で実現可能。
つまり、この問題は「Xが3以上18以下であるか?」という問題に言い換えられます。
サイコロの目として最も小さいのは、(1,1,1)が出たときの、3。
サイコロの目として最も大きいのは、(6,6,6)が出たときの、18。
3から8までは、(1,1,残り)で実現可能。
8から13までは、(1,残り,6)で実現可能。
13から18までは、(残り,6,6)で実現可能。
つまり、この問題は「Xが3以上18以下であるか?」という問題に言い換えられます。
ということで、
if (3<=X&&X<=18)
という形でif分岐を用意して、適切に出力内容を決めればよい。
解答例
注意点
両端がある範囲条件の書き方に注意
数学のように3<=X<=18とは書けない。
正確に言えば、書いてもエラーしないが、「Xが3以上18以下であるか?」とは全く別の意味になってしまう。
かならず3<=X&&X<=18と別々に書いて&&で結ぶこと。
正確に言えば、書いてもエラーしないが、「Xが3以上18以下であるか?」とは全く別の意味になってしまう。
かならず3<=X&&X<=18と別々に書いて&&で結ぶこと。