• NY86 找球号(一)


                                                找球号(一)

                        时间限制:3000 ms  |   内存限制:65535 KB   难度:3
    描述
    在某一国度里流行着一种游戏。游戏规则为:在一堆球中,每个球上都有一个整数编号i(0<=i& lt;=100000000),编号可重复,现在说一个随机整数k(0<=k<=100000100),判断编号为k的球是否在这堆球中(存 在为"YES",否则为"NO"),先答出者为胜。现在有一个人想玩玩这个游戏,但他又很懒。他希望你能帮助他取得胜利。
    输入
    第一行有两个整数m,n(0<=n<=100000,0<=m<=1000000);m表示这堆球里有m个球,n表示这个游戏进行n次。
    接下来输入m+n个整数,前m个分别表示这m个球的编号i,后n个分别表示每次游戏中的随机整数k
    输出
    输出"YES"或"NO"

    样例输入

    6 4

    23 34 46 768 343 343

    2 4 23 343

     
    样例输出
    
    

    NO

    NO

    YES

    YES








    # include<stdio.h>
    # include<stdlib.h>
    int a[1000001];
    int cmp(const void * p1,const void * p2)
    {
        return *(int *)p1-*(int *)p2;
    }
    
    int search(int i,int j,int n)
    {
        int mid;
        while(i<j)                         //折半查找
        {
            mid = i+(j-i)/2;
            if(a[mid] == n) return 1;
            else if(a[mid]>n) j = mid;
            else i = mid+1;
        }
        return 0;
    }
    
    int main(void)
    {
        int n,m,i,t;
        scanf("%d %d",&m,&n);
        for(i=0;i<m;i++)
            scanf("%d",&a[i]);
        qsort(a,m,sizeof(int),cmp);
        for(i=0;i<n;i++)
        {
            scanf("%d",&t);
            printf(search(0,m-1,t)?"YES
    ":"NO
    ");
        }
        return 0;
    }   
    




    我愿付出努力,只为更好的明天
  • 相关阅读:
    K-Means++ 聚类之数据可视化:使用gnuplot
    QQ设计第1-5步
    QQ设计第1-5步
    为什么有很深的windows基础还是不能动摇linux半步
    常用命令
    在线会计_金蝶友商网
    XP使用VNC远程桌面CentOS 6
    Fatal error: Call to undefined function mb_substr()
    如何汉化 po 文件及编译成 mo 文件
    idoerp
  • 原文地址:https://www.cnblogs.com/castledrv/p/3648686.html
Copyright © 2020-2023  润新知