最后一个点RE,求调。
查看原帖
最后一个点RE,求调。
1254203
LQZl楼主2025/1/17 11:58
#include <bits/stdc++.h>
using namespace std;
long long n,cnt,book[1000005];
struct node{
	long long id,m;
}a[1000005];
bool cmp(node x,node y){
	return x.m<y.m;
}
long long ef(long long cnt,long long x){
	
	
	long long l=1;
	long long r=cnt;
	long long mid=l+(r-l)/2;
	while(l<=r){
		if(a[mid].m<x){
			l=mid+1;
		}
		else if(a[mid].m>x){
			r=mid-1;
		}
		else if(a[mid].m==x){
			return a[mid].id;
		}
		mid=l+(r-l)/2;
	} 
	return -1;
}
int main ()
{
	cin>>n>>cnt;
	for(long long i=1;i<=n;i++){
		
		a[i].id=i;
		cin>>a[i].m;
		if(book[a[i].m]){
			a[i].id=book[a[i].m];
		}
		else{
			book[a[i].m]=a[i].id;
		}
	}
	sort(a+1,a+n+1,cmp);
	
	for(long long i=1;i<=cnt;i++){
		long long u;
		cin>>u;
		cout<<ef(n,u)<<" ";
	}
	
	
	return 0;
}
2025/1/17 11:58
加载中...