2 条题解

  • 0
    @ 2026-8-18 15:19:39
    #include <bits/stdc++.h>
    using namespace std;
    const int N=1e6+10;
    int a[N];
    int n,m;
    int x;
    
    int main(){
    	scanf("%d %d",&n,&m);
    	for(int i=1;i<=n;i++)
    		scanf("%d",&a[i]);
    	while(m--){
    		scanf("%d",&x);
    		int l=1,r=n;
    		int ans=-1;
    		while(l<=r){
    			int mid=(l+r)/2;
    			if(a[mid]==x){
    				ans=mid;
    				break;
    			}else if(a[mid]<x){
    				l=mid+1;
    			}else 
    				r=mid-1;
    		}
    		printf("%d\n",ans);
    	}
    	return 0;
    }
    

    信息

    ID
    19596
    时间
    1000ms
    内存
    512MiB
    难度
    3
    标签
    递交数
    97
    已通过
    39
    上传者