• c++ 大理石


    /*
    问题:现在N个大理石,每个大理石上写了一个非负数首先把各数从小到大排序,然后回到Q个问题.每个问题问是否有一个大理石写着某个整数x,如果是,还要回到那个大理石上写的是x,排序后的大理石从左到右编号为1到n
    样例:
    输入:
    4 1
    2 3 5 1
    5
    5 2
    1 3 3 3 2
    2 3
    输出:
    CASE# 1:
    5 found at 4
    CASE# 2
    2 not found
    3 found at 3
    */
    #include<cstdio>
    #include<algorithm>
    using namespace std;
    const int maxn = 10000;
    int main(){
        int n,q,x,a[maxn],kase=0;
        while(scanf("%d%d",&n,&q)==2&&n){
            printf("CASE# %d: ",++kase);
            //初始化数组
            for(int i=0;i<n;i++)scanf("%d",&a[i]);
            //排序
            sort(a,a+n);
            //q次寻找
            while(q--){
                scanf("%d",&x);
                //在排序好的数组中 寻找x 并返回大于或等于x的第一个元素位置,如果都小于x,则返回last的位置
                int p=lower_bound(a,a+n,x)-a;
                //判断a[p]是否等于x
                if(a[p]==x)printf("%d found at %d ",x,p+1);
                else printf("%d not found ",x);
            }
        }
        return 0;
    }

  • 相关阅读:
    设置网页内容不准复制
    a标签打电话
    <base target="_blank" />
    常用sql语句 DML语句
    常用sql-----DDL语句
    php文件操作
    php格式化时间
    php 数组函数
    程序员和特种兵 几分相似几分无奈
    女码农的真实生活:程序“媛”无法卖萌
  • 原文地址:https://www.cnblogs.com/qingtianBKY/p/6652297.html
Copyright © 2020-2023  润新知