1WA,5TLE,c++
查看原帖
1WA,5TLE,c++
1121454
futonghao楼主2023/11/9 20:50
#include<bits/stdc++.h>
using namespace std;
int a[1000000],q[100000];
int fun(int left,int right,int i){
	if(left>right)return -1;
	int mid=(left+right)/2;
	if(a[mid]==q[i]){
		while(a[mid]=a[mid-1]){
			mid--;
		}
		return mid+1;
	}
	if(q[i]<a[mid]){
		return fun(left,mid-1,i);
	}else if(q[i]>a[mid]){
		return fun(mid+1,right,i);
	}
}
int main(){
	int n,m;
	cin>>n>>m;
	for(int i=0;i<n;i++){
		cin>>a[i];
	}
	for(int i=0;i<m;i++){
		cin>>q[i];
	}
	for(int i=0;i<m;i++){
		cout<<fun(0,n-1,i)<<" ";
	}
	return 0;
}
2023/11/9 20:50
加载中...