洛谷 10474. UVA 10474
原题链接
简单
作者:
史一帆
,
2021-04-12 20:34:56
,
所有人可见
,
阅读 246
STL 之lower_bound
函数
lower_bound(起始地址,结束地址,要查找的数值)
返回的是数值 第一个 出现的位置。
功能:函数lower_bound()在first和last中的前闭后开区间进行二分查找,返回大于或等于val的第一个元素位置。如果所有元素都小于val,则返回last的位置.
注意:如果所有元素都小于val,则返回last的位置,且last的位置是越界的!!
#include <iostream>
#include <string>
#include <algorithm>
using namespace std;
const int N = 10010;
int n, q, cnt = 1;
int a[N];
string str1 = " not found", str2 = " found at ";
int main()
{
while (cin >> n >> q && (n != 0 && q != 0))
{
printf("CASE# %d:\n", cnt);
cnt ++;
for (int i = 0; i < n; i ++ ) cin >> a[i];
sort(a, a + n);
while (q --)
{
int x;
cin >> x;
int p = lower_bound(a, a + n, x) - a;
if (a[p] == x) cout << x << str2 << p + 1 << endl;
else cout << x << str1 << endl;
}
}
return 0;
}