84分,WA第一个点求助
查看原帖
84分,WA第一个点求助
309796
jknbhbuy楼主2022/10/11 20:07
#include<bits/stdc++.h>
#define int long long

using namespace std;

int n,m;
int a[10000005];
void findnum(int x)
{
	int l=1,r=n,ans=0;
	while(l<=r)
	{
		int mid=(l+r)>>1;
		if(x<=a[mid])
		{
			r=mid-1;
			ans=mid;
		}
		else l=mid+1;
	}
	if(a[ans]!=x)
	{
		printf("%d ",-1);
		return;
	}
	while(ans>=0&&a[ans]==x)ans--;
	ans++;
	printf("%d ",ans);
}
signed main()
{
	scanf("%d%d",&n,&m);
	for(int i=1;i<=n;i++)
	{
		scanf("%d",&a[i]);
	}
	for(int i=1;i<=m;i++)
	{
		int x;
		scanf("%d",&x);
		findnum(x);
	}
	return 0;
}
2022/10/11 20:07
加载中...