本题较为简单,就是先排个序,然后再搜索。读懂题目之后,做起来并不难。
同时,通过使用STL容器及算法可以大大缩减所用时间。
可以明显感受到C++之于C的优越性,其非常重要的一点便是它强大的标准库。
不过粗心的我因为没有注意输出格式,而吃了一次WA……
代码如下:
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
int main()
{
int n, q, cnt = 0;
while (cin >> n >> q && (n || q))
{
vector<int> num, query;
int t;
cnt++;
for(int i = 0; i < n; i++)
{
cin >> t;
num.push_back(t);
}
sort(num.begin(), num.end());
for (int i = 0; i < q; i++)
{
cin >> t;
query.push_back(t);
}
cout << "CASE# " << cnt << ':' << endl;
for (int i = 0; i < q; i++)
{
auto loc = find(num.begin(), num.end(), query[i]) - num.begin();
if (loc == n)
cout << query[i] << " not found" << endl;
else
cout << query[i] << " found at " << loc + 1 << endl;
}
}
return 0;
}
路曼曼其修远兮,吾将上下而求索。