不是wa就是tle求助
查看原帖
不是wa就是tle求助
218974
wsadjkl0楼主2021/4/7 12:26

用ide试了一些简单值没试出问题了,求大佬指点555

#include<stdio.h>
long long a[1000001],b[100001];

void find(int n,int m)
{
	int i=0,j;
	for(j=0;j<m;j++)
	{
    if(b[j]>a[i])
    {
		while(b[j]>a[i]&&i<=n) i++;//向右翻
		if((b[j]<a[i]&&b[j]>a[i-1])||i>n) printf("-1 ");//向→翻不到
}else{
		while(b[j]<a[i]&&i>=1) i--;//向左翻
		if((b[j]>a[i]&&b[j]<a[i+1])||i<1) {printf("-1 ");}//向←翻不到
}
if(i<1) i++;

		if(b[j]==a[i]&&b[j]!=a[i-1]) printf("%d ",i);
		else i--;
	}
    }



int main()
{
	int n,m,i;
	scanf("%d%d",&n,&m);

a[0]=-1;
	for(i=1;i<=n;i++)
		scanf("%d",&a[i]);

	for(i=0;i<m;i++)
		scanf("%d",&b[i]);

	/*检查输入
for(i=0;i<=n;i++)
		printf("%d ",a[i]);
printf("\n");
	for(i=0;i<m;i++)
	    printf("%d ",b[i]);*/

        find(n,m);


	return 0;
}
2021/4/7 12:26
加载中...