第一行,空格隔开两个整数 NN 和 MM。
第二行输入 NN 个整数。
之后的 MM 行,每一行一个整数 XX,表示所需要找到的数。
输出格式
对于每次询问输出一个结果。
样例 1
样例输入
Copy
5 3
1 2 3 3 5
1
3
6
样例输出
Copy
0
2
-1
用基础的C语言,但是一直不能输出-1
#include<stdio.h>
int main(void)
{
int N,M,X[100],a[100],i,j,flag=1;
int middle;
scanf("%d%d",&N,&M);
for(i=0;i<N;i++)
{
scanf("%d",&a[i]);
}
for(j=0;j<M;j++)
{
scanf("%d",&X[j]);
}
for(i=0;i<M;i++)
{
for(j=0;j<N;j++)
{
int left=0,right=N-1;
middle=(left+right)/2;
while(left<right)
{
if(a[middle]==X[j])
{
printf("%d\n",middle);
break;
}
else if(a[middle]>X[j])
{
right=middle-1;
}
else {
left=middle;
}
middle=(left+right)/2;
}
}
if(a[middle]!=X[j])
{
flag=0;
}
if(flag==0) printf("-1");
}
return 0;
}