10474 - 大理石在哪儿Where is the Marble?(排序+检索)

来源:互联网 发布:白鲨淘宝店号是多少 编辑:程序博客网 时间:2024/05/01 10:42

Raju and Meena love to play with Marbles. They have got a lot of

marbles with numbers written on them. At the beginning, Raju would
place the marbles one after another in ascending order of the numbers
written on them. Then Meena would ask Raju to find the first marble
with a certain number. She would count 1...2...3. Raju gets one point
for correct answer, and Meena gets the point if Raju fails. After some
fixed number of trials the game ends and the player with maximum
points wins. Today it’s your chance to play as Raju. Being the smart
kid, you’d be taking the favor of a computer. But don’t underestimate
Meena, she had written a program to keep track how much time you’re
taking to give all the answers. So now you have to write a program,
which will help you in your role as Raju.
Input
There can be multiple test cases. Total no of test cases is less than 65. Each test case consists begins
with 2 integers: N the number of marbles and Q the number of queries Mina would make. The next
N lines would contain the numbers written on the N marbles. These marble numbers will not come
in any particular order. Following Q lines will have Q queries. Be assured, none of the input numbers
are greater than 10000 and none of them are negative.
Input is terminated by a test case where N = 0 and Q = 0.
Output
For each test case output the serial number of the case.
For each of the queries, print one line of output. The format of this line will depend upon whether
or not the query number is written upon any of the marbles. The two different formats are described
below:
   ‘x found at y’, if the first marble with number x was found at position y. Positions are numbered
1, 2, . . . , N.
   ‘x not found’, if the marble with number x is not present.
Look at the output for sample input for details.
Sample Input
4 1
2
3
5
1
5
5 2
1
3
3
3
1
2
3
0 0
Sample Output
CASE# 1:
5 found at 4

CASE# 2:

2 not found

3 found at 3


方法就是用一个sort排序之后再用lower_bound,代码如下:

#include <cstdio>#include <algorithm>using namespace std;const int MAXN=10000;int main(){    int N,Q,a[MAXN],i,CASE=0;    while(scanf("%d%d",&N,&Q)&&N&&Q)    {        CASE++;        for(i=0;i<N;i++)        scanf("%d",&a[i]);        sort(a,a+N);        printf("CASE# %d:\n",CASE);        while(Q--)        {            int x;            scanf("%d",&x);            int p=lower_bound(a,a+N,x)-a;            if(a[p]==x) printf("%d found at %d\n",x,p+1);            else printf("%d not found\n",x);        }    }    return 0;}


0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 腱鞘炎做小针刀手指伸不直怎么办 胳膊无故筋疼怎么办 胳膊肘聚筋了怎么办 手臂筋扭伤肿痛怎么办 胳膊经常扭到怎么办 小孩胳膊扭到了怎么办 打篮球胳膊扭了怎么办 大腿根有淋巴结怎么办 脸上长了淋巴结怎么办 拔牙后淋巴肿痛怎么办 脖子上生淋巴结怎么办 脖子两侧淋巴结肿大怎么办 脖子左侧锁骨痛怎么办 整牙后中线歪了怎么办 右侧卵巢旁囊肿怎么办 颈下淋巴结肿大怎么办 耳朵后面淋巴结肿大怎么办 颈侧淋巴结肿大怎么办 锁骨窝淋巴肿大怎么办 晚上颈肌痉挛怎么办 劲部淋巴结肿大怎么办 胸锁乳头肌增厚怎么办 幼儿脖子两边歪怎么办 小孩脖子偏一边怎么办 小孩头有点歪怎么办 宝宝脖子有点歪怎么办 心情郁闷胸口疼怎么办 宝宝咳嗽胸口疼怎么办 小孩脖子歪了怎么办 脖子有点向右偏怎么办 感觉乳房有硬块怎么办 宝宝有点歪头怎么办 一岁半宝宝头歪怎么办 宝宝头偏向左边怎么办 长大了头睡偏了怎么办 一岁半宝宝头偏怎么办 小宝宝头有点歪怎么办 婴儿头向左歪怎么办 孩子突然脖子歪怎么办 宝宝睡觉歪脖子怎么办 孩子老歪脖子怎么办