#280. 平衡数
平衡数
【题目描述】
一个 N 位的二进制数(可能有前导0),如果其中 0 和 1 的个数相同,则称它为“平衡数”。
例如 4 位的“平衡数”共有 6 个,从小到大依次为: 0011, 0101, 0110, 1001, 1010, 1100
现在给出两个正整数 N, K,请你输出第 K 小的 N 位“平衡数”。如果不存在,则输出 -1。
注意,如果存在第 K 小的 N 位“平衡数”,你的输出必须是一个 N 位的二进制数,如果有前导 0 则必须输出所有的前导 0。
【输入格式】
一行,两个整数 N, K。
【输出格式】
输出占一行,表示答案。
【样例1输入】
4 3
【样例1输出】
0110
【样例2输入】
4 10
【样例1输出】
-1
【样例3输入】
60 12345678910
【样例3输出】
000000000000000001001101101000111110111110011110110111111101
【数据范围】
30% 的数据:1 ≤ N ≤ 10
60% 的数据:1 ≤ N ≤ 30
100% 的数据:1 ≤ N ≤ 60, 1 ≤ K ≤ 2^60。
相关
在下列比赛中: