五个AC一个爆了空间谁能帮忙看看
查看原帖
五个AC一个爆了空间谁能帮忙看看
579495
hhdc3042343164楼主2022/9/24 20:10
#include<bits/stdc++.h>
using namespace std;
int n,m;
int a[2000005],b;
int read(){//快读
	int x=0,f=1;
	char c=getchar();
	while(c<'0'||c>'9'){
		if(c=='-') f=-1;
		c=getchar();
	}
	while(c>='0'&&c<='9'){
		x=x*10+c-'0';
		c=getchar();
	}
	return x*f;
}
int cha(int l,int r,int x)
{
	int mid=(r+l)/2;
	if(a[mid]==x&&a[mid-1]!=x)
	{
		return mid;
	}
	if(a[l]>x||a[r]<x||r < l)
	{
		return 0;
	}
	if(a[mid]==x)
	{
		return cha(l,mid,x);
	}
	if(a[mid]<x)
	{
		return cha(mid+1,r,x);
	}
	else
	{
		return cha(l,mid,x);
	}
}
int main()
{
	cin>>n>>m;
	for(int i=1;i<=n;i++)
	{
	a[i]=read();
	}
	for(int i=1;i<=m;i++)
	{
		b=read();
		int xx=cha(1,n,b);
		if(xx!=0)
		{
			cout<<xx<<" ";
		}
		else
		{
			cout<<-1<<" ";
		}
	}
	return 0;
}

2022/9/24 20:10
加载中...