求助,64
查看原帖
求助,64
568903
Miracle1024楼主2023/5/7 15:54

闰土

记录

#include<iostream>
using namespace std;
int a[1001001]={0};
int n,m,s,k;
int fnd(int s){
	int l=1,r=n,mid=0;
	while(l<r){
		mid=l+((r-l)>>1);
		if(a[mid]<=s) l=mid+1;
		else r=mid;
	}
	if(a[l-1]==s) return l-1;
	else return -1;
}
int main(){
//	freopen("doc.in","r",stdin);
//	freopen("doc.out","w",stdout);
	scanf("%d %d",&n,&m);
	for(int i=1;i<=n;i++){
		
		scanf("%d",&a[i]);
	}
	for(int i=1;i<=m;i++){
		scanf("%d",&s);
		k=fnd(s);
		while(a[k]==a[k-1]&&k>0){
			k--;
		}
		printf("%d ",k);
	}
    return 0;
}
2023/5/7 15:54
加载中...