暑假训练 1
lower_bound(num,num+n,k)-num;返回在数组中大于等于k的第一个下标
upper_bound()返回大于的第一个下标
binary_search()二分查找是否存在
#include <iostream>
#include <algorithm>
#include <cstdio>
using namespace std;
bool cmp(int a,int b)
{
return a>b;
}
int num[10000];
int main()
{
int m,n;
int cont=1;
while(1)
{
scanf("%d%d",&n,&m);
if(n==0&&m==0)
break;
for(int i=0;i<n;i++)
{
scanf("%d",&num[i]);
}
sort(num,num+n);
cout<<"CASE# "<<cont<<":"<<endl;
cont++;
for(int i=0;i<m;i++)
{
int k;
scanf("%d",&k);
binary_search()
int k1=lower_bound(num,num+n,k)-num;
if(num[k1]==k)
{
cout<<k<<" found at "<<k1+1<<endl;
}
else
cout<<k<<" not found"<<endl;
}
}
return 0;
}