#include <stdio.h>
#include <stdlib.h>
#include <algorithm>
#define max 10001
int a[max],b[max];
void search(int num,int N)
{
int low=1,high=N,mid;
int ok=0;
mid=(low+high)/2;
while(low<high)
{
if(a[mid]<num)low=mid+1;
if(a[mid]>num)high=mid;
mid=(low+high)/2;
if(a[mid]==num){while(a[--mid]==num);ok=mid+1;break;}
}
if(ok)printf("%d found at %d\n",num,ok);
else printf("%d not found\n",num);
}
int main()
{
int N,Q;
int count=1;
freopen("input.txt","r",stdin);
while(~scanf("%d%d",&N,&Q)&&(Q||N))
{
for(int i=1;i<=N;i++){
scanf("%d",a+i);
}
std::sort(a+1,a+1+N);
printf("CASE# %d:\n",count);
count++;
for(int i=1;i<=Q;i++){
scanf("%d",b+i);
search(b[i],N);
}
}
return 0;
}
|
UVA 10474 - Where is the Marble?
最新推荐文章于 2022-01-18 15:51:31 发布