题目描述
给定一个严格升序的数组,用下面这套标准二分去查 ,把每一轮访问过的下标 按顺序输出,这就是二分的脚印:
- 初始 ,;
- 每轮取 (整除),把 记入脚印;
- 若 ,查找结束;
- 若 ,令 ;
- 否则令 ,回到第 2 步;
- 没查到时也要照常走到 为止,脚印才算完整。
共 次查询,每次输出一行脚印。
输入格式
第一行两个整数 。
第二行 个严格升序的整数 。
接下来 行,每行一个整数 。
输出格式
共 行,每行若干个整数,相邻两个数用单个空格分隔,表示按规则得到的 序列。
样例
输入
8 4 2 4 6 8 10 12 14 16 10 1 13 16
输出
4 6 5 4 2 1 4 6 7 4 6 7 8
样例解释
数组为 。查 : 取 ,,; 取 ,,; 取 , 命中,脚印为 4 6 5。查 : 时 ,; 时 ,; 时 ,,区间空,脚印为 4 2 1。查 : 时 ; 时 ,; 时 ,,区间空,脚印为 4 6 7。查 : 时 ; 时 ; 时 ,; 时 命中,脚印为 4 6 7 8。
数据范围
- 本题特意把规模限制得很小:,,方便逐轮核对脚印;
- ,数组严格升序(无重复);
- 。