1 条题解

  • 1
    @ 2026-1-5 16:51:41
    #include<bits/stdc++.h>
    using namespace std;
    int a[1000010];
    inline int read(){
        int x=1,y=0;
        char ch=getchar();
        while(ch<'0'||ch>'9'){
            if(ch=='-')x=-1;
            ch=getchar();
        }
        while(ch>='0'&&ch<='9'){
            y=y*10+ch-'0';
            ch=getchar();
        }
        return x*y;
    }
    inline void write(int n){
        if(n<0)putchar('-'),n=-n;
        if(n>9)write(n/10);
        putchar(n%10+'0');
    }
    int binarySearch(const vector<int>&arr,int target){
        int pos = upper_bound(a,a+arr.size(),target)-a;
        if (a[pos-1]==target)return pos;
        else return -1;
    }
    void asyncRead(vector<int>&arr,int n){
        for(int i=0;i<n;++i)
        arr[i]=read();
    }
    int main(){
        ios::sync_with_stdio(false);
        cin.tie(nullptr);
        int n=read(),m=read();
        vector<int>arr(n);
        asyncRead(arr,n);
        sort(arr.begin(),arr.end());
        for(int i=0;i<arr.size();i++){
            a[i]=arr[i];
        }
        while(m--){
            int q=read();
            int result=binarySearch(arr,q);
            write(result);putchar('\n');
        }
        return 0;
    }
    

    信息

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