1 #include <stdio.h>
2 #include <stdlib.h>
3 #include <string.h>
4 int a[3000000];
5 int find(int q,int left,int right)
6 {
7 int x,y;
8 x=left;
9 y=right;
10 int mid;
11 mid=(x+y)/2;
12 if(q==a[mid])
13 {
14 return mid;
15 }
16 if(x>=y)return -1;//和之前的的二分查找一样,但是某些条件及范围不一样,注意题目要求即可。
17 if(q<a[mid])return find(q,x,mid-1);
18 else return find(q,mid+1,y);
19
20 }
21 int main()
22 {
23 int n,m;
24 scanf("%d",&n);
25 int i;
26 for(i=0; i<n; i++)
27 {
28 scanf("%d",&a[i]);
29 }
30 int b;
31 scanf("%d",&m);
32 for(i=0; i<m; i++)
33 {
34 scanf("%d",&b);
35 if(find(b,0,n-1)!=-1)
36 printf("%d\n",find(b,0,n-1)+1);
37 else printf("-1\n");
38 }
39 return 0;
40 }