B. Queries about less or equal elements【1300 / 二分】

在这里插入图片描述
https://codeforces.com/problemset/problem/600/B

#include<bits/stdc++.h> 
using namespace std;
const int N=1e5*2+10;
int a[N],b[N],n,m;
int main(void)
{
    
    
	cin>>n>>m;
	for(int i=0;i<n;i++) cin>>a[i];
	for(int i=0;i<m;i++) cin>>b[i];
	sort(a,a+n);
	for(int i=0;i<m;i++) 
	{
    
    
		int l=0,r=n-1;
		while(l<r)
		{
    
    
			int mid=l+r+1>>1;
			if(a[mid]<=b[i]) l=mid;
			else r=mid-1;
		}
		if(a[l]<=b[i]) cout<<l+1<<" ";
		else cout<<"0 "; 
	}
	return 0;
}

猜你喜欢

转载自blog.csdn.net/bettle_king/article/details/121269867