C0347 [USACO]01串

内存限制:256 MB 时间限制:1000 ms

题目描述

考虑排好序的 $N(N \le 31)$ 位二进制数。

你会发现,这很有趣。因为他们是排列好的,而且包含所有长度为 $N$ 且这个二进制数中 $1$ 的位数的个数小于等于 $L(L \le N)$ 的数。

你的任务是输出第 $i$($1 \le i \le $ 长度为 $N$ 的二进制数的个数)小的(注:题目这里表述不清,实际是,从最小的往大的数,数到第 $i$ 个符合条件的,这个意思),长度为 $N$,且 $1$ 的位数的个数小于等于 $L$ 的那个二进制数。

(例:100101中,$N=6$,含有位数为 $1$ 的个数为 $3$)。

输入格式

共一行,用空格分开的三个整数 $N,L,i$。

输出

共一行,输出满足条件的第 $i$ 小的二进制数。

样例

样例输入 1

5 3 19

样例输出 1

10011

提示