用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]);
find(n,m);
return 0;
}