学术讨论
  • 板块学术版
  • 楼主daozai_xiaohezi
  • 当前回复3
  • 已保存回复3
  • 发布时间2024/3/23 20:02
  • 上次更新2024/3/23 20:27:33
查看原帖
学术讨论
786084
daozai_xiaohezi楼主2024/3/23 20:02
#include<bits/stdc++.h>
using namespace std;
int a[10000000];		
int f(int n,int m)
{
	int l = 0,r = n - 1,mid;
	while (l <= r)
	{
		if (l > r)
		{
			break;
		}
		mid = (l + r) / 2;
		if (a[mid] == m)
		{
			while (a[mid - 1] == a[mid])
			{
				mid--;
			}
			return mid + 1;
			break;
		}
		else if(a[mid] > m)
		{
			r = mid - 1;
		}
		else
		{
			l = mid + 1;
		}
	}
	return -1;
}

int main()
{
	int n,m;
	cin>>n>>m;
	for (int i = 0;i < n;i++)
	{
		cin>>a[i];
	}
	sort(a,a + n);
	for (int i = 0;i < m;i++)
	{
		int k;
		cin>>k;
		cout<<f(n,k)<<" ";
	}
	return 0;

}
2024/3/23 20:02
加载中...