解説

制約より1135数の個数は10610^6以下であるため、1135数を全列挙することを考えます。簡単のため、1の位を排除して考えることにします。 1135数の10の位以降の数字は、各桁の数字を di(1ik,1di)d_i(1 \leq i \leq k , 1 \leq d_i) として、i=1kdi9\displaystyle \sum_{i=1}^{k} d_i \leq 9 となり、このことから k9k \leq 9 つまり、1135数の10の位以降の数字は高々9桁であることが分かります。 では、具体的な did_i の値の構築を考えてみましょう。ここで、i=1kdi=c\displaystyle \sum_{i=1}^{k} d_i = c (1c9)(1 \leq c \leq 9)と分解して考えてみます。 このときのdid_i の値は、「 cc 個のボールをk1k-1個の仕切りで kk 個の区別のある空間に(各空間に必ず1つ以上のボールがあるという条件の下で)区切ったときの各空間にあるボールの数」に等しいと考えることができます。 例えばc=4c=4のとき、d=(1,3)d = (1,3)は o|ooo 、d=(1,2,1)d = (1,2,1)は o|oo|o 、といった具合に表すことができます。仕切りの入れ方はそれぞれのボールの間に仕切りを入れるか、入れないかを全探索することで求めることができ、c=ic=i のとき (2i1)(2^{i-1})通りあります。これを全てのc=i(1i9)c=i(1 \leq i \leq 9)について調べることで1135数を全て列挙することができます。1135数を全列挙するのにかかる時間計算量はO(i=1ki×2i1)=O(k×2k)O(\displaystyle \sum_{i=1}^{k} i \times 2^{i-1}) = O(k \times 2^k)であり、k9k \leq 9 より1135数を全列挙しても余裕をもって実行時間制限に間に合います。あとは列挙した1135数を小さい順にソートした上でNN番目の1135数を出力すればよいです。よって、この問題を解くことができました。

ex.

1135数の総数は i=192i1=511\displaystyle \sum_{i=1}^{9} 2^{i-1} = 511 です。