#687. L2-4 二分查找

L2-4 二分查找

当前没有测试数据。

Description

给定一个严格单调数列,询问若干个数分别需要在数列中二分几次才能找到。如果能找到,输出二分的次数;如果不能找到,输出 NONE。 二分查找参考程序如下:

(数列单调递增时)

l = 1, r = n, cnt = 0;
while (l <= r) {
    mid = (l + r) / 2;
    cnt++;
    if (a[mid] == key)
        break;
    if (a[mid] > key)
        r = mid - 1;
    else
        l = mid + 1;
}

(数列单调递减时)

l = 1, r = n, cnt = 0;
while (l <= r) {
    mid = (l + r) / 2;
    cnt++;
    if (a[mid] == key)
        break;
    if (a[mid] > key)
        l = mid + 1;
    else
        r = mid - 1;
}

上述程序中结束时 cntcnt 的值即为二分次数。

Format

Input

第一行两个整数 n,mn,m 分别表示数列长度和询问次数。

第二行 nn 个整数,第 ii 个表示 aia_i

接下来 mm 行,每行一个整数 xx 表示要求询问的数。

Output

mm 行,如果能找到,输出二分的次数;如果不能找到,输出 NONE

Samples

10 4
1 2 3 5 7 9 11 12 13 14
7
6
5
4
1
NONE
4
NONE
8 4
20 18 15 10 9 8 5 4 
1
2
10
40
NONE
NONE
1
NONE