HM246 条件点名
HM246 条件点名
来源: 第 246 集 常用查找算法-find_if
难度: 普及-
时间限制: 1s
空间限制: 64MB
题目描述
find_if 按**条件**查找,三个参数:起点迭代器、终点迭代器、谓词。谓词为真就返回该位置迭代器;走到终点仍不满足,返回结束迭代器。只要是大于、小于这类条件查找,都用 find_if。头文件 algorithm。
分两种情况:
- 内置类型:写一元谓词,例如“大于门槛”。底层会取出每个元素解引用后交给谓词。匿名函数对象写成
GreaterFive()这种形式。 - 自定义类型:谓词的参数是人员对象(引用即可)。例如“年龄大于 \(20\)”:从前往后看,年龄等于 \(20\) 不算大于。找到后用迭代器箭头取姓名和年龄。
先在整数序列里找第一个大于 \(t\) 的数;再在人员序列里找第一个年龄大于 \(u\) 的人。
输入格式
第一行两个整数 \(n, t\)。
第二行 \(n\) 个整数。当 \(n=0\) 时本行可以是空行。
第三行两个整数 \(m, u\)。
接下来 \(m\) 行,每行一个不含空白的姓名和一个整数年龄。
输出格式
第一行:找到则输出该整数,否则 NOT FOUND。
第二行:找到则输出 姓名 年龄,否则 NOT FOUND。
样例
输入 #1
10 5
0 1 2 3 4 5 6 7 8 9
4 20
aaa 10
bbb 20
ccc 30
ddd 40
输出 #1
6
ccc 30
输入 #2
3 100
1 2 3
2 50
aaa 10
bbb 20
输出 #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\) 的是 \(6\);人员里 aaa 不满足,bbb 年龄等于 \(20\) 也不满足,到 ccc 年龄 \(30\) 才返回真。
信息
- ID
- 1245
- 难度
- (无)
- 分类
- (无)
- 标签
- (无)
- 递交数
- 0
- 已通过
- 0
- 通过率
- ?
- 上传者