atcoder#CODEFESTIVAL2016FINALB. Exactly N points

Exactly N points

配点 : 300300

問題文

ある年のCODE FESTIVALの決勝では NN 問の問題が出題されました。

i(1iN)i (1 \leq i \leq N) 番目の問題の配点は ii 点です。

高橋くんは、このコンテストでちょうど NN 点を取りたいと思い、そのために解く問題の集合をどうするかを考えています。

配点が高い問題は難しいので、解く問題の配点のうちの最大値が最小になるようにしようと考えました。

高橋くんが解くべき問題の集合を求めてください。

制約

  • 1N1071 \leq N \leq 10^7

部分点

  • 1N10001 \leq N \leq 1000 を満たすデータセットに正解した場合は、200200 点が与えられる。
  • 追加制約のないデータセットに正解した場合は、上記とは別に 100100 点が与えられる。

入力

入力は以下の形式で標準入力から与えられる。

NN

出力

点数の合計がちょうど NN となるような集合のうち、配点の最大値が最小となるようなものを求め、その集合に含まれる問題の番号を 11 行にひとつずつ出力せよ。昇順に出力する必要はありません。

そのような集合が複数考えられる場合は、いずれを出力しても構わない。

4
1
3

44 番目の問題のみを解いた場合もちょうど 44 点が得られますが、1,31,3 番目の問題を解く方が配点の最大値が小さくなります。

7
1
2
4

{3,4}\{3,4\} という集合も考えられます。

1
1