蒟蒻求助QWQ,0分二分查找
查看原帖
蒟蒻求助QWQ,0分二分查找
760849
shenglizhe_M楼主2023/10/19 17:56
#include <bits/stdc++.h>
using namespace std;
struct ball{
	int num;
	int no;
}a[1000001];
bool cmp(ball x,ball y){
	return x.num<y.num;
}
int n,q,x,l,r,mid;
int main(){
	cin>>n;
	for(int i=1;i<=n;i++){
		cin>>a[i].num;
		a[i].no=i;
	}
	sort(a+1,a+n+1,cmp);
	cin>>q;
	for(int i=1;i<=q;i++){
		cin>>x;
		l=1,r=n;
		while(l<=r){
			mid=(l+r)/2;
			if(x==a[mid].num){
				r=mid-1;
			}else if(x>a[mid].num){
				l=mid+1;
			}else{
				r=mid-1;
			}
		}
		if(a[l].num!=x){
			cout<<"0"<<endl; 
		}else{
			cout<<a[i].no<<endl;
		}
	}
	return 0;
}
2023/10/19 17:56
加载中...