时间限制:C/C++/Rust/Pascal 2秒,其他语言4秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
Special Judge, 64bit IO Format: %lld
题目描述
76 需要你构造一个长度为

的排列,并将其分割成 不多于

个 不相交的连续区间 ,使得每个区间的元素的

,
按位或起来等于整数

。
如果能构造,输出任意一种方案。
如果构造不了,输出

。
输入描述:
输入两个整数
,代表排列的长度和目标整数 。
输出描述:
如果无法构造,直接输出
。
否则,按以下格式输出:
第一行输出一个长度为
的排列 。
第二行输出你想划分的区间数量
。
随后
行,每行输出两个整数
,表示区间的左右端点。
示例2
说明
可以证明,无论怎样分组,都凑不出

。
此处证明略。