大佬们帮忙看看,1WA,6TLE
查看原帖
大佬们帮忙看看,1WA,6TLE
880392
lin1205049002楼主2022/12/17 11:46
#include<stdio.h>
int count;
int arr[1000010];	
int check(int a){
	int l=1,r=count;
	while(r>=l)
	{
		int mid=(r+l)/2;
		if(arr[mid]==a)
		{
			while(mid--)
			{
				if(arr[mid]!=a)return mid+1;
			}
		}
		if(arr[r]==a)
		{
			while(r--)
			{
				if(arr[r]!=a)return r+1;
			}
		}
		if(arr[l]==a)
		{
			while(l--)
			{
				if(arr[l]!=a)return l+1;
			}
		}
		if(l+1==r)break;
		if(arr[mid]<a)l=mid;
		if(arr[mid]>a)r=mid;
		
	}
	return -1;
}
int main(){
	int a,b;
	scanf("%d %d",&a,&b);
	for(int i=1;i<=a;i++)
	{
		scanf("%d",&arr[i]);
		count=i;
	}
	for(int i=1;i<=b;i++)
	{
		int t;
		scanf("%d",&t);
		a=check(t);
		printf("%d ",a);
	}
}
2022/12/17 11:46
加载中...