カメヲラボ

主にプログラミングとお勉強全般について書いてます

Parliament(0)

N人の代議員を以下のルールでグループ分けする。


①各グループの構成人数は、すべて異なる。
②各グループから一人が委員会に出席するが、委員会の構成メンバーは毎回異なる。
③①②のルールを満たし、且つ議会が長く続く(委員会をなるべくたくさん行う)ようにする。

たとえば


5
という入力なら、5人を異なる人数のグループに分ける場合
5人(1グループだけ)
1人+4人
2人+3人
の可能性があるが、この中から委員会のメンバーを構成する場合、構成パターンは2人×3人の6通りがもっとも多い。よって出力は、

2 3
となる。


10
という入力なら、
10人
1人+9人
1人+2人+7人



とたくさんの組み合わせがあるが、この中でもっとも委員会の構成パターンが多いのは、2人×3人×5人だから、

2 3 5
のような出力になる。

いくつかの例を考えればすぐに気付くが、1人だけやN人すべてのグループを作ると構成パターンがどうしても少なくなってしまうので、このような組み合わせを見つけるには最低2人のグループを考えるべきである。

また、構成パターンがなるべく多くなるようにするということは、乗算の回数を増やすためにグループ数をなるべく大きくした方が良い。

つまり、構成人数は


2以上のできるだけ小さくかつ異なる数で、合計がNになるもの
と考えればよいだろう。