HM245 点名查找
HM245 点名查找
来源: 第 245 集 常用遍历算法-find
难度: 普及-
时间限制: 1s
空间限制: 64MB
题目描述
find 在给定区间里查找**指定元素**。找到返回该元素的迭代器,找不到返回结束迭代器。不论找到与否,返回值都是迭代器:等于 end 表示没有,否则解引用即可。参数是起点、终点和要找的值。头文件 algorithm。
分两种情况:
- 内置类型可以直接比,例如在整数容器里找 \(5\)。
- 自定义类型必须重载
operator==。find底层用==比较,它不知道该按姓名还是年龄比。重载时用const引用接收对方,避免被修改;姓名与年龄都相同才返回真。查找时应该再构造一个待查对象(同名同龄),而不是把已经放进容器的那个对象再塞回去。
先在整数序列里 find 一个整数;再在人员序列里 find 一个“姓名+年龄”都匹配的人。
输入格式
第一行两个整数 \(n, x\),表示整数个数和要找的整数。
第二行 \(n\) 个整数。当 \(n=0\) 时本行可以是空行。
第三行一个整数 \(m\)。
接下来 \(m\) 行,每行一个不含空白的姓名和一个整数年龄。
最后一行一个不含空白的姓名和一个整数年龄,表示待查的人。当 \(m=0\) 时仍要给出待查的人。
输出格式
第一行:若找到整数 \(x\) 则输出 \(x\),否则输出 NOT FOUND。
第二行:若找到该人则输出 姓名 年龄,否则输出 NOT FOUND。
样例
输入 #1
10 5
0 1 2 3 4 5 6 7 8 9
4
aaa 10
bbb 20
ccc 30
ddd 40
bbb 20
输出 #1
5
bbb 20
输入 #2
3 50
1 2 3
2
aaa 10
bbb 20
ccc 30
输出 #2
NOT FOUND
NOT FOUND
说明
\(0 \le n, m \le 1000\),整数绝对值不超过 \(10^9\),姓名长度 \(1\sim 20\),年龄为 \(1\sim 10^6\)。
样例 #1 在 \(0\sim 9\) 中找到 \(5\);人员里用新对象去对姓名 bbb、年龄 \(20\),两者都相等才算找到。样例 #2 整数 \(50\) 不存在,人员里也没有 ccc 30。
信息
- ID
- 1244
- 难度
- (无)
- 分类
- (无)
- 标签
- (无)
- 递交数
- 0
- 已通过
- 0
- 通过率
- ?
- 上传者