/*
* Copyright (c) 2017, 安徽大学计算机科学与技术学院
* All rights reserved.
* 作 者: 杨磊
* 完成日期:2017 年 01 月 07 日
* 问题描述:
* 有N个非负数要求你按升序排列,并回答Q个问题。问题的内容是
* 整数X在不在这个序列里,如果在输出它的位置。
* 思路:
* 排序+检索。
*/
#include<cstdio>
#include<iostream>
#include<algorithm>
#include<cstring>
#include<stdlib.h>
#define maxn 10000
using namespace std;
int s[maxn];
int main(){
int N,Q,kase=0;;
while(scanf("%d%d",&N,&Q)==2&&N){
printf("CASE# %d:\n",++kase);
for(int i=0;i<N;i++)
cin>>s[i];
sort(s,s+N);
/*以下是本菜鸡的弱智检索 770ms */
for(int j=1;j<=Q;j++){
int t,k,cnt=0,flag=0;*/
cin>>k;
for(t=0;t<N;t++){
if(s[t]==k){
flag=1;}
if(flag)
break;
}
if(flag)
printf("%d found at %d\n",k,t+1);
else
printf("%d not found\n",k);}
/*
刘汝佳大神的检索 430ms
while(Q--){
int k;
cin>>k;
int p=lower_bound(s,s+N,k)-s;
if(s[p]==k)
printf("%d found at %d\n",k,p+1);
else
printf("%d not found\n",k);}
*/
}
return 0;
}
转载于:https://www.cnblogs.com/super-yang/p/6819571.html