HM246 条件点名

HM246 条件点名

HM246 条件点名

来源: 第 246 集 常用查找算法-find_if

难度: 普及-

时间限制: 1s

空间限制: 64MB

题目描述

find_if 按**条件**查找,三个参数:起点迭代器、终点迭代器、谓词。谓词为真就返回该位置迭代器;走到终点仍不满足,返回结束迭代器。只要是大于、小于这类条件查找,都用 find_if。头文件 algorithm

分两种情况:

  1. 内置类型:写一元谓词,例如“大于门槛”。底层会取出每个元素解引用后交给谓词。匿名函数对象写成 GreaterFive() 这种形式。
  2. 自定义类型:谓词的参数是人员对象(引用即可)。例如“年龄大于 \(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
通过率
?
上传者