7 条题解

  • 4
    @ 2024-7-26 14:24:51
    #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)/2;
    		if(a[mid]>=x) r=mid;
    		else l=mid+1;
    	}
    	if(a[l]==x) return l;
    	else return -1; 
    }
    int main(){
        scanf("%d%d",&n,&m); 
        for(int i=1;i<=n;i++) cin>>a[i];
        for(int i=1;i<=m;i++){
        	cin>>q;
        	int ans=find(q);
    		printf("%d ",ans);          
    	}
    	return 0;
    } 
    

信息

ID
2044
时间
1000ms
内存
125MiB
难度
5
标签
递交数
278
已通过
97
上传者