64分求调
查看原帖
64分求调
739320
fly_code楼主2024/12/10 17:08
#include<bits/stdc++.h>
using namespace std;
int n,m,a[1000020]={0},b[100010]={0};


int search(int s,int l,int r)
{
	
	while(l<r)
	{
		int mid=(l+r)/2;
		if(a[mid]<s){
			l=mid+1;
		}
		else if(a[mid]>s){
			r=mid;
		}
		else
		{
			while(a[mid-1]==a[mid])
			{
				mid--;
			}
			return mid;
		}
	}
	return -1;
}

int main()
{
	ios::sync_with_stdio(false);
	cin.tie(nullptr);
	cout.tie(nullptr);
	cin>>n>>m;
	for(int i=1;i<=n;i++)
	{
		cin>>a[i];
	}
	for(int i=1;i<=m;i++)
	{
		cin>>b[i];
	}
	for(int i=1;i<=m;i++)
	{
		cout<<search(b[i],1,n)<<" ";
	}
	return 0;
	
 } 

记录这里 必关,谢谢!

2024/12/10 17:08
加载中...