5 条题解

  • 1
    @ 2024-7-26 14:51:21
    #include<bits/stdc++.h>
    using namespace std;
    const int maxn=1e6+10;
    int a[maxn],n,m,q;
    
    int find(int x){
    	int l=1,r=n;
    	while(l<r){
    		int mid=(l+r+1)/2;
    		if(a[mid]<=x){
    			l=mid;
    		} 
    		else r=mid-1;
    	}
    	if(a[l]==x) return l;
    	else return -1;
    }
    
    int main(){
    	scanf("%d",&n);
    	for(int i=1;i<=n;i++) cin>>a[i];
    	scanf("%d",&m);
    	for(int i=1;i<=m;i++){
    		cin>>q;
    		int ans=find(q);
    		printf("%d ",ans);
    	}
    } 
    

    信息

    ID
    1147
    时间
    1000ms
    内存
    64MiB
    难度
    5
    标签
    递交数
    235
    已通过
    87
    上传者