我不理解,我样例都过了,逻辑也许也没问题,就是全0分
查看原帖
我不理解,我样例都过了,逻辑也许也没问题,就是全0分
744070
qyf1374478722楼主2022/9/20 19:58
#include<bits/stdc++.h>
using namespace std;
int n,m;
int a[1000002];
int left1,right1;
int main()
{
	cin>>n>>m;
	int i;
	for(i=1;i<=n;i++)
	{
		scanf("%d",a+i);
		if(a[i]==a[i-1])
		{
			n--;
			i--;
		}
	}
	int k;
	for(int o=1;o<=m;o++)
	{
		cin>>k;
		left1=1;
		right1=i-1;
		while(a[(left1+right1)/2]!=k&&left1<right1)
		{
			if(a[(left1+right1)/2]>k)
				right1=(left1+right1)/2-1;
			else
				left1=(right1+left1)/2+1;
		}
		if(a[(left1+right1)/2]==k)
			printf("%d ",(right1+left1)/2);
		else
		    cout<<-1<<" ";
	}
}
2022/9/20 19:58
加载中...