#include <iostream>
#include <cstdio>
#define MAX 1001000
using namespace std;
int _search(int pp[], int low, int high, int key);
int n, pp[MAX];
int main()
{
int m;
while(cin >> n >> m)
{
for(int i = 1; i <= n; i++)
cin >> pp[i];
while(m --)
{
int key;
cin >> key;
if(_search(pp,1, n, key) != 0)
cout << _search(pp,1,n,key) << endl;
else
{
int k = 0;
for(int i = 1; i <= n; i++)
if(pp[i] >= key)
{
k = 1;
cout << i << endl;
break;
}
if(k == 0)
{
cout << n+1 << endl;
}
}
}
}
return 0;
}
int _search(int pp[], int low, int high, int key)
{
if(low <= high)
{
int mid = (low + high) / 2;
if(pp[mid] == key)
{
return mid;
}
else if(pp[mid] > key)
_search(pp, low, mid-1,key);
else
_search(pp, mid+1,high,key);
}
else return 0;
}
机测,小鑫的询问
最新推荐文章于 2021-11-16 13:17:37 发布