洛谷P2249(二分)

#include<bits/stdc++.h>
using namespace std;
int main()
    {
    
    

        long long n,m;
        int num;
        scanf("%lld%lld",&n,&m);
        int a[n+1];
        for(int i=1;i<=n;i++)
        {
    
    
            scanf("%d",&a[i]);
        }
        while(m--)
        {
    
    
            int res=-1;
            scanf("%d",&num);
            int left=1,right=n;
            while(left<=right) {
    
    
                int mid = (left + right) / 2;
                if (a[mid] == num) {
    
    
                    res = mid;
                    right = mid - 1;
                } else if (a[mid] > num) {
    
    
                    right = mid - 1;
                }
                else
                {
    
    
                    left=mid+1;
                }

            }
            printf("%d ",res);
        }
        return 0;
    }

猜你喜欢

转载自blog.csdn.net/p15008340649/article/details/112909427
今日推荐