求助dalao,自己试感觉没什么问题,一提交就全WA
查看原帖
求助dalao,自己试感觉没什么问题,一提交就全WA
264847
primaryzk楼主2020/7/22 16:31
#include<stdio.h>
long int a[1000001], b[100001];
int check(int x, int y, long int z)
{
	if (x<=y)
	{
        if (z<a[(x+y)/2])
	       check(x, (x+y)/2-1, z);
	    else if (z>a[(x+y)/2])
	        check((x+y)/2+1, y, z);
		else if (z==a[(x+y)/2] && x!=y)
		    check(x, (x+y)/2, z);
	    else if (z==a[(x+y)/2] && x==y)
	        return (x+y)/2;
	}
	else
	    return -1;
}
int main()
{
	int n, m;
	int i, j;
	scanf("%d %d", &n, &m);
	for (i=1;i<=n;i++)
	    scanf("%ld", &a[i]);
	for (i=1;i<=m;i++)
        scanf("%ld", &b[i]);
	for (i=1;i<=m;i++)
	    printf("%d ", check(1, n, b[i]));
}
2020/7/22 16:31
加载中...