请尝试手写实现二分查找。
给定一个长度为 n 的不下降序列 a,你需要处理 m 个询问。
对于每一个询问,给定一个整数 k,你需要给出最大的下标 i,使得 a_i \leq k。
序列下标从 1 开始计数。
输入
第一行包含两个整数 n,m \ (1 \leq n,m \leq 10^5),含义如题目所示。
第二行包含 n 个用空格间隔的整数 a_1,a_2,...,a_n \ (-10^9 \leq a_i \leq 10^9),表示序列 a。
第三行包含 m 个用空格间隔的整数 k_1,k_2,...,k_n \ (-10^9 \leq k_i \leq 10^9),第 i 个数表示第 i 次询问给定的数。
输出
对于每个询问,输出一行。
如果存在这样的下标,输出最大的下标;否则输出 0。
样例
标准输入 复制文本 |
5 5 3 3 5 8 9 2 4 8 1 10 |
标准输出 复制文本 |
0 2 4 0 5 |