辞書順で小さいと定義されます。入力は全て整数である。nextPermutationというアルゴリズムが存在します。詳しくは調べていただけると分かるのですが、ある列の辞書順で次の列を求め、また辞書順で次の列が存在するか判定してくれるアルゴリズムです。これを用いると、それぞれの順列が辞書順で最も大きい順列から何個離れているかを求めることができるので、後は差を取ると判定できます。これの上位版の問題として、辞書順で何番目?が存在します。こちらの問題は順当な考察から解くので、もし良ければこちらもやってみてください。「半公倍数」と定義します。半公倍数の個数を求めてください。入力は全て整数である。変形され、問題は全て整数で表すことができます。公倍数であることが分かります。奇数である必要があります。奇数の時に条件を満たします。答えとなり、これは式変形すれば求まります。求める際、最小公倍数がオーバーフローする可能性には気を付けましょう。するとオーバーフローを防げます。重いし罠があるし400点問題としては難しい分類の問題です。ついでに言うとテストケースも誤っているし、正直言って辛いね......。以下のように定めます。等しくすることを考える。