头像

欢迎来到我的博客

分享题解与总结

P2249查找

image

#include<stdio.h>
#define M 1000010
int a[M],n,m,q;

int Find(int key)
{
    int l=0,r=n+1,mid;
    while(l+1<r)
    {
        mid=(l+r)/2;
        if(a[mid]>=key) r=mid;
        else l=mid;
    }
    return a[r]==key ? r : -1;
}

int main()
{
    scanf("%d %d",&n,&m);
    int i;
    for(i=1;i<=n;++i) scanf("%d",&a[i]);
    while(m--) 
    {
        scanf("%d",&q);
        printf("%d ",Find(q));
    }
    return 0;
}
posted @ 2026-02-10 20:01  king_steph1209  阅读(6)  评论(0)    收藏  举报